Skip to content

Commit b26d46e

Browse files
committed
Add macros to imenu, declare used treesit C functions
1 parent 8a98d26 commit b26d46e

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

clojure-ts-mode.el

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,11 @@
5252
;;; Code:
5353
(require 'treesit)
5454

55+
(declare-function treesit-parser-create "treesit.c")
56+
(declare-function treesit-node-type "treesit.c")
57+
(declare-function treesit-node-child "treesit.c")
58+
(declare-function treesit-node-child-by-field-name "treesit.c")
59+
5560
(defconst clojure-ts-mode-version
5661
(eval-when-compile
5762
(lm-version (or load-file-name buffer-file-name)))
@@ -361,6 +366,10 @@ DEFINITION-TYPE-NAME might be a string like defn, def, defmulti, etc."
361366
"Return non-nil if NODE is a defn form."
362367
(clojure-ts-mode--definition-node-p "defn" node))
363368

369+
(defun clojure-ts-mode--defmacro-node-p (node)
370+
"Return non-nil if NODE is a defmacro form."
371+
(clojure-ts-mode--definition-node-p "defmacro" node))
372+
364373
(defun clojure-ts-mode--ns-node-p (node)
365374
"Return non-nil if NODE is a ns form."
366375
(clojure-ts-mode--definition-node-p "ns" node))
@@ -383,7 +392,9 @@ The node representing (ns user) would return user."
383392
(defvar clojure-ts-mode--imenu-settings
384393
`(("Namespace" "list_lit" clojure-ts-mode--ns-node-p
385394
clojure-ts-mode--standard-definition-node-name)
386-
("Definition" "list_lit" clojure-ts-mode--defn-node-p
395+
("Function" "list_lit" clojure-ts-mode--defn-node-p
396+
clojure-ts-mode--standard-definition-node-name)
397+
("Macro" "list_lit" clojure-ts-mode--defmacro-node-p
387398
clojure-ts-mode--standard-definition-node-name)
388399
("Variable" "list_lit" clojure-ts-mode--def-node-p
389400
clojure-ts-mode--standard-definition-node-name)))

0 commit comments

Comments
 (0)