Function: elisp-refs--walk-positioned-symbols

elisp-refs--walk-positioned-symbols is a byte-compiled function defined in elisp-refs.el.

Signature

(elisp-refs--walk-positioned-symbols FORMS SYMBOL)

Documentation

Given a nested list of FORMS, return a list of all positions of SYMBOL.

Assumes symbol-with-pos-pos is defined (Emacs 29+).

Source Code

;; Defined in ~/.emacs.d/elpa/elisp-refs-20230920.201/elisp-refs.el
(defun elisp-refs--walk-positioned-symbols (forms symbol)
  "Given a nested list of FORMS, return a list of all positions of SYMBOL.
Assumes `symbol-with-pos-pos' is defined (Emacs 29+)."
  (cond
   ((symbol-with-pos-p forms)
    (let ((symbols-with-pos-enabled t))
      (if (eq forms symbol)
          (list (list symbol
                      (symbol-with-pos-pos forms)
                      (+ (symbol-with-pos-pos forms) (length (symbol-name symbol))))))))
   ((elisp-refs--proper-list-p forms)
    ;; Proper list, use `--mapcat` to reduce how much we recurse.
    (--mapcat (elisp-refs--walk-positioned-symbols it symbol) forms))
   ((consp forms)
    ;; Improper list, we have to recurse on head and tail.
    (append (elisp-refs--walk-positioned-symbols (car forms) symbol)
            (elisp-refs--walk-positioned-symbols (cdr forms) symbol)))
   ((vectorp forms)
    (--mapcat (elisp-refs--walk-positioned-symbols it symbol) forms))))