Function: expreg--treesit

expreg--treesit is a natively compiled function defined in expreg.el.

Signature

(expreg--treesit)

Documentation

Return a list of regions according to tree-sitter.

Source Code

;; Defined in /nix/store/29cdhkmkqv2bgp3p30khhf35kkbgx1ya-emacs-packages-deps/share/emacs/site-lisp/elpa/expreg-1.4.1/expreg.el
(defun expreg--treesit ()
  "Return a list of regions according to tree-sitter."
  (when (treesit-parser-list)
    (let ((parsers (append (treesit-parser-list)
                           (and (fboundp #'treesit-local-parsers-at)
                                (treesit-local-parsers-at (point)))))
          result)
      (dolist (parser parsers)
        (let ((node (treesit-node-at (point) parser))
              (root (treesit-parser-root-node parser))
              (lang (treesit-parser-language parser)))

          (while node
            (let ((beg (treesit-node-start node))
                  (end (treesit-node-end node)))
              (when (not (treesit-node-eq node root))
                (push (cons (intern (format "treesit--%s" lang))
                            (cons beg end))
                      result)))

            (setq node (treesit-node-parent node)))))
      result)))