clojure-emacs/clojure-mode

`clojure-find-def` fails on symbols that contain special characters

loganmhb opened this issue · 0 comments

I have a slightly unconventional def macro that looks like this:

(defn+ my-special-fn []
   (body))

Expected behavior

(clojure-find-def) with the pointer in that function should return ("defn+" "my-special-fn").

Actual behavior

It returns ("defn" "+").

This appears to be due to the use of the end-of-word matcher in clojure-def-type-and-name-regex, and is fixed by replacing that operator (\\>) with the end-of-symbol matcher instead (\\_>). I don't think this would break anything, but I am by no means an elisp regex expert. I can make a PR for this if you agree this should be the behavior.

Steps to reproduce the problem

Execute (clojure-find-def) while the pointer is in the above fn def.

Environment & Version information

clojure-mode version

clojure-mode (version 5.13.0)

Emacs version

27.2

Operating system

macOS Monterey