Toplevel defs with metadata are not handled properly
kommen opened this issue · 2 comments
This is valid Clojure code and is handled correctly in clojure-mode:
^{:a 1}
(def b 2)Expected behavior
To match the behavior of clojure-mode which is:
-) b can navigated to via imenu
-) (def b 2) properly font locked liked other toplevel defs
-) (def b 2) not indented
Actual behavior
-) b not included in imenu
-) (def b 2) not font locked
-) (def b 2) indented
Steps to reproduce the problem
Put this a clojure-ts-mode buffer:
^{:a 1}
(def b 2)Environment & Version information
clojure-ts-mode version
clojure-ts-mode (version 0.2.2)
tree-sitter-clojure grammar version
v0.0.12
Emacs version
E.g. 29.3
Operating system
macOS 14.4
Toplevel defs with metadata is very common in Clerk notebooks.
e.g for controlling visibility:
https://github.com/nextjournal/clerk/blob/cbb19fd8f1a9b3b01c9ccb0d43c6dbb4571f3829/notebooks/visibility.clj#L21-L22
or specifying viewers:
https://github.com/nextjournal/clerk/blob/cbb19fd8f1a9b3b01c9ccb0d43c6dbb4571f3829/notebooks/viewer_api_meta.clj#L22-L23