Function: treesit-fold--continuous-node-prefix
treesit-fold--continuous-node-prefix is a natively compiled function
defined in treesit-fold.el.
Signature
(treesit-fold--continuous-node-prefix NODE PREFIX NEXT)
Documentation
Iterate through node starting from NODE and compare node-text to PREFIX; then return the last iterated node.
Argument NEXT is a boolean type. If non-nil iterate forward; otherwise iterate in backward direction.
Source Code
;; Defined in /nix/store/mpy1l6b4hlzpp59l4vbahq83hqa821ci-emacs-packages-deps/share/emacs/site-lisp/elpa/treesit-fold-0.2.1/treesit-fold.el
(defun treesit-fold--continuous-node-prefix (node prefix next)
"Iterate through node starting from NODE and compare node-text to PREFIX;
then return the last iterated node.
Argument NEXT is a boolean type. If non-nil iterate forward; otherwise iterate
in backward direction."
(let* ((iter-node node) (last-node node)
(last-line (treesit-fold--node-start-position node)) line text break
(line-range 1) (last-line-range 1) max-line-range
(indentation (treesit-fold--indentation (treesit-node-start iter-node)))
next-indentation)
(while (and iter-node (not break))
(setq text (string-trim (treesit-node-text iter-node))
line (treesit-fold--node-start-position iter-node)
line-range (1+ (treesit-fold--count-matches "\n" text))
max-line-range (max line-range last-line-range)
next-indentation (treesit-fold--indentation (treesit-node-start iter-node)))
(if (and (treesit-fold--in-range-p line (- last-line max-line-range) (+ last-line max-line-range))
(string-prefix-p prefix text)
(= indentation next-indentation))
(setq last-node iter-node last-line line
last-line-range (1+ (treesit-fold--count-matches "\n" text)))
(setq break t))
(setq iter-node (treesit-fold--next-prev-node-skip-newline iter-node next)))
last-node))