File tree Expand file tree Collapse file tree 4 files changed +34
-2
lines changed Expand file tree Collapse file tree 4 files changed +34
-2
lines changed Original file line number Diff line number Diff line change 22
33## master (unreleased)
44
5+ ### Bugs fixed
6+
7+ * [ #625 ] ( https://github.com/clojure-emacs/clojure-mode/issues/625 ) : Fix metadata being displayed in imenu instead of var name
8+
59## 5.15.0 (2022-07-19)
610
711### Changes
Original file line number Diff line number Diff line change @@ -757,7 +757,7 @@ Called by `imenu--generic-function'."
757757 (when (char-equal ?^ (char-after def-beg))
758758 ; ; move to the beginning of next sexp
759759 (progn (forward-sexp ) (backward-sexp )))
760- (when (or (not (char-equal ?^ (char-after ( point ) )))
760+ (when (or (not (char-equal ?^ (char-after def-beg )))
761761 (and (char-equal ?^ (char-after (point ))) (= def-beg (point ))))
762762 (setq found? t )
763763 (when (string= deftype " defmethod" )
Original file line number Diff line number Diff line change 227227; ; definitions with metadata only don't cause freezing
228228(def ^String)
229229
230+ (defmulti multi (fn [a _] a))
231+ (defmethod multi :test [_ b] b )
232+ (defmethod multi :best [_ b] b )
233+
230234(defn ^String reverse
231235 " Returns s with its characters reversed."
232236 {:added " 1.2" }
Original file line number Diff line number Diff line change 8989 (with-clojure-buffer (concat form some-sexp)
9090 (end-of-buffer )
9191 (clojure-match-next-def)
92- (expect (looking-at " (def" )))))))
92+ (expect (looking-at " (def" ))))))
93+
94+ (it " captures var name"
95+ (let ((var-name " some-name" ))
96+ (dolist (form '(" (def %s 1)"
97+ " (def %s)"
98+ " (def ^:private %s 2)"
99+ " (def ^{:private true} %s 3)" ))
100+ (with-clojure-buffer (format form var-name)
101+ (end-of-buffer )
102+ (clojure-match-next-def)
103+ (cl-destructuring-bind (name-beg name-end) (match-data )
104+ (expect (string= var-name (buffer-substring name-beg name-end))))))))
105+
106+ (it " captures var name with dispatch value for defmethod"
107+ (let ((name " some-name :key" ))
108+ (dolist (form '(" (defmethod %s [a])"
109+ " (defmethod ^:meta %s [a])"
110+ " (defmethod ^{:meta true} %s [a])"
111+ " (defmethod %s)" ))
112+ (with-clojure-buffer (format form name)
113+ (end-of-buffer )
114+ (clojure-match-next-def)
115+ (cl-destructuring-bind (name-beg name-end) (match-data )
116+ (expect (string= name (buffer-substring name-beg name-end)))))))))
93117
94118(describe " clojure syntax"
95119 (it " handles prefixed symbols"
You can’t perform that action at this time.
0 commit comments