Function: treesit-fold-range-matlab-statements

treesit-fold-range-matlab-statements is a natively compiled function defined in treesit-fold.el.

Signature

(treesit-fold-range-matlab-statements NODE OFFSET)

Documentation

Define fold range for MATLAB statements.

For arguments NODE and OFFSET, see function treesit-fold-range-line-comment for more information.

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-range-matlab-statements (node offset)
  "Define fold range for MATLAB statements.

For arguments NODE and OFFSET, see function `treesit-fold-range-line-comment'
for more information."
  (when-let* ((cur-node (treesit-node-at (point)))
              (named-node (car (treesit-fold-find-children node "\n")))
              (beg (treesit-node-start named-node))
              (ins (append
                    (treesit-fold-find-children node "catch_clause")
                    (treesit-fold-find-children node "case_clause")
                    (treesit-fold-find-children node "otherwise_clause")
                    (treesit-fold-find-children node "elseif_clause")
                    (treesit-fold-find-children node "else_clause")
                    (treesit-fold-find-children node "end")))  ;; can include parts maybe
              (end (treesit-node-start (car (treesit-fold-find-children node "end")))))
    (when (string-suffix-p "clause" (treesit-node-type (treesit-node-parent cur-node)))
      (if (or (equal (treesit-node-type cur-node) "otherwise")
              (equal (treesit-node-type cur-node) "else"))
          (setq beg (treesit-node-end cur-node))
        (setq beg (treesit-node-end (treesit-node-next-sibling cur-node))))
      (setq end (1- (treesit-node-end (treesit-node-parent cur-node)))))
    (treesit-fold--cons-add (cons beg end) offset)))