Function: treesit-range-fn-exclude-children

treesit-range-fn-exclude-children is a byte-compiled function defined in treesit.el.gz.

Signature

(treesit-range-fn-exclude-children NODE OFFSET)

Documentation

Return ranges spanned by NODE but excluding its children.

OFFSET is added to the start and end of the overall range.

This can be used as a :range-fn in treesit-range-rules.

Source Code

;; Defined in /usr/src/emacs/lisp/treesit.el.gz
(defun treesit-range-fn-exclude-children (node offset)
  "Return ranges spanned by NODE but excluding its children.

OFFSET is added to the start and end of the overall range.

This can be used as a `:range-fn' in `treesit-range-rules'."
  (let* ((start (+ (treesit-node-start node) (or (car offset) 0)))
         (end (+ (treesit-node-end node) (or (cdr offset) 0)))
         (prev-end start)
         (ranges nil))
    (dolist (child (treesit-node-children node))
      (let ((child-start (treesit-node-start child))
            (child-end (treesit-node-end child)))
        (push (cons prev-end child-start) ranges)
        (setq prev-end child-end)))
    (push (cons prev-end end) ranges)
    (nreverse ranges)))