Function: clojure--symbol-names

clojure--symbol-names is a byte-compiled function defined in clojure-mode.el.

Signature

(clojure--symbol-names TOP-LEVEL DECLARED BEG END)

Documentation

Return the names the symbols in the TOP-LEVEL form use from BEG to END.

DECLARED is a hash table of the positions of the symbols that bind a name rather than use one.

Source Code

;; Defined in ~/.emacs.d/elpa/clojure-mode-20261103.1226/clojure-mode.el
(defun clojure--symbol-names (top-level declared beg end)
  "Return the names the symbols in the TOP-LEVEL form use from BEG to END.
DECLARED is a hash table of the positions of the symbols that bind a
name rather than use one."
  (mapcan (lambda (sym)
            (let ((name (clojure--form-name sym))
                  (start (clojure--form-start sym)))
              (unless (or (< start beg)
                          (>= start end)
                          (gethash start declared)
                          (clojure--form-namespace sym))
                ;; ClojureScript reads obj.prop as the prop of the local obj.
                (if (string-match "\\`\\([^.]+\\)\\." name)
                    (list name (match-string 1 name))
                  (list name)))))
          (clojure--form-descendants top-level 'symbol)))