Function: treesit-add-font-lock-rules
treesit-add-font-lock-rules is a byte-compiled function defined in
treesit.el.gz.
Signature
(treesit-add-font-lock-rules RULES &optional HOW FEATURE)
Documentation
Add font-lock RULES to the current buffer.
RULES should be the return value of treesit-font-lock-rules. RULES
will be enabled and added to treesit-font-lock-settings.
HOW can be either :before or :after. If HOW is :before, prepend RULES
before all other existing font-lock rules in
treesit-font-lock-settings; if :after or omitted, append RULES after
all existing rules.
If FEATURE is non-nil, add RULES before/after rules for FEATURE. See
docstring of treesit-font-lock-rules for what is a feature.
Source Code
;; Defined in /usr/src/emacs/lisp/treesit.el.gz
(defun treesit-add-font-lock-rules (rules &optional how feature)
"Add font-lock RULES to the current buffer.
RULES should be the return value of `treesit-font-lock-rules'. RULES
will be enabled and added to `treesit-font-lock-settings'.
HOW can be either :before or :after. If HOW is :before, prepend RULES
before all other existing font-lock rules in
`treesit-font-lock-settings'; if :after or omitted, append RULES after
all existing rules.
If FEATURE is non-nil, add RULES before/after rules for FEATURE. See
docstring of `treesit-font-lock-rules' for what is a feature."
(let ((rules (seq-map #'treesit--font-lock-setting-enable rules))
(feature-idx
(when feature
(cl-position-if
(lambda (setting)
(eq (treesit--font-lock-setting-feature setting) feature))
treesit-font-lock-settings))))
(pcase (cons how feature)
((or '(:after . nil) '(nil . nil))
(setq treesit-font-lock-settings
(append treesit-font-lock-settings rules)))
('(:before . nil)
(setq treesit-font-lock-settings
(append rules treesit-font-lock-settings)))
(`(:after . ,_feature)
(setf (nthcdr (1+ feature-idx) treesit-font-lock-settings)
(append rules
(nthcdr (1+ feature-idx)
treesit-font-lock-settings))))
(`(:before . ,_feature)
(setf (nthcdr feature-idx treesit-font-lock-settings)
(append rules
(nthcdr feature-idx treesit-font-lock-settings)))))))