Function: treesit-merge-font-lock-feature-list
treesit-merge-font-lock-feature-list is a byte-compiled function
defined in treesit.el.gz.
Signature
(treesit-merge-font-lock-feature-list FEATURES-LIST-1 FEATURES-LIST-2)
Documentation
Merge two tree-sitter font lock feature lists.
Returns a new font lock feature list with no duplicates in the same level. It can be used to merge font lock feature lists in a multi-language major mode. FEATURES-LIST-1 and FEATURES-LIST-2 are list of lists of feature symbols.
Probably introduced at or before Emacs version 31.1.
Source Code
;; Defined in /usr/src/emacs/lisp/treesit.el.gz
(defun treesit-merge-font-lock-feature-list (features-list-1 features-list-2)
"Merge two tree-sitter font lock feature lists.
Returns a new font lock feature list with no duplicates in the same level.
It can be used to merge font lock feature lists in a multi-language major mode.
FEATURES-LIST-1 and FEATURES-LIST-2 are list of lists of feature symbols."
(let ((result nil)
(features-1 (car features-list-1))
(features-2 (car features-list-2)))
(while (or features-1 features-2)
(cond
((and features-1 (not features-2)) (push features-1 result))
((and (not features-1) features-2) (push features-2 result))
((and features-1 features-2) (push (cl-union features-1 features-2) result)))
(setq features-list-1 (cdr features-list-1)
features-list-2 (cdr features-list-2)
features-1 (car features-list-1)
features-2 (car features-list-2)))
(nreverse result)))