Function: cider--treesit-font-lock-rules
cider--treesit-font-lock-rules is a byte-compiled function defined in
cider-mode.el.
Signature
(cider--treesit-font-lock-rules SYMBOLS-PLIST CORE-PLIST)
Documentation
Return tree-sitter font-lock settings for SYMBOLS-PLIST and CORE-PLIST.
The Clojure counterpart to cider--compile-font-lock-keywords, producing
treesit-font-lock-rules for a clojure-ts-mode buffer. Return nil when
there is nothing to highlight.
Source Code
;; Defined in ~/.emacs.d/elpa/cider-20260822.1520/cider-mode.el
(defun cider--treesit-font-lock-rules (symbols-plist core-plist)
"Return tree-sitter font-lock settings for SYMBOLS-PLIST and CORE-PLIST.
The Clojure counterpart to `cider--compile-font-lock-keywords', producing
`treesit-font-lock-rules' for a clojure-ts-mode buffer. Return nil when
there is nothing to highlight."
(let* ((cats (cider--dynamic-font-lock-symbols symbols-plist core-plist))
(queries
(cl-loop
for (key face anchor) in
;; Order matters: later queries win (they are :override t and are
;; appended after clojure-ts-mode's own settings), so put the
;; \"strongest\" categories last.
'((:functions font-lock-function-name-face nil)
(:vars font-lock-variable-name-face nil)
(:macros font-lock-keyword-face call)
(:deprecated cider-deprecated-face nil)
(:enlightened cider-enlightened-face nil)
(:instrumented cider-instrumented-face nil)
(:traced cider-traced-face nil))
for names = (plist-get cats key)
when names
collect (let ((cap (intern (format "@%s" face)))
(re (cider--treesit-symbol-regexp names)))
(if (eq anchor 'call)
;; Macros only in call position, like the clojure-mode
;; rule that requires a preceding \"(\".
`((list_lit :anchor (sym_lit (sym_name) ,cap))
(:match ,re ,cap)
(:pred cider--treesit-not-local-p ,cap))
`((sym_lit (sym_name) ,cap)
(:match ,re ,cap)
(:pred cider--treesit-not-local-p ,cap)))))))
(when queries
;; Pass all pattern/predicate groups as a single query (like
;; clojure-ts-mode's own multi-pattern features), not as separate query
;; arguments - `:language' only carries to the first of those.
(treesit-font-lock-rules
:language 'clojure
:feature cider--treesit-font-lock-feature
:override t
queries))))