Function: treesit-outline-level

treesit-outline-level is a byte-compiled function defined in treesit.el.gz.

Signature

(treesit-outline-level)

Documentation

Return the depth of the current outline heading.

Source Code

;; Defined in /usr/src/emacs/lisp/treesit.el.gz
(defun treesit-outline-level ()
  "Return the depth of the current outline heading."
  (let* ((node (treesit-outline--at-point))
         (level 1)
         (pred (if treesit-aggregated-outline-predicate
                   (alist-get (treesit-language-at (point))
                              treesit-aggregated-outline-predicate)
                 treesit-outline-predicate)))
    (while (setq node (treesit-parent-until node pred))
      (setq level (1+ level)))

    ;; Continue counting the host nodes.
    (when treesit-aggregated-outline-predicate
      (dolist (parser (mapcar #'cdr (treesit-parsers-at
                                     (point) nil t '(global local))))
        (let* ((node (treesit-node-at (point) parser))
               (lang (treesit-parser-language parser))
               (pred (alist-get lang treesit-aggregated-outline-predicate)))
          (while (setq node (treesit-parent-until node pred))
            (setq level (1+ level))))))

    level))