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)))