emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/treesit-fold 12ae1d0457 356/417: Added section & environme


From: ELPA Syncer
Subject: [nongnu] elpa/treesit-fold 12ae1d0457 356/417: Added section & environment folding to latex-parser
Date: Mon, 1 Jul 2024 10:03:04 -0400 (EDT)

branch: elpa/treesit-fold
commit 12ae1d045759e08579357955ac614c8cc965a167
Author: Nidish Narayanaa Balaji <nidbid@gmail.com>
Commit: Jen-Chieh Shen <jcs090218@gmail.com>

    Added section & environment folding to latex-parser
---
 ts-fold-parsers.el |  7 ++++++-
 ts-fold.el         | 24 ++++++++++++++++++++++++
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/ts-fold-parsers.el b/ts-fold-parsers.el
index 2519cf92fe..27ad9690f9 100644
--- a/ts-fold-parsers.el
+++ b/ts-fold-parsers.el
@@ -359,7 +359,12 @@
 
 (defun ts-fold-parsers-latex ()
   "Rule set for LaTex."
-  '((curly_group . ts-fold-range-seq)
+  '((generic_environment . ts-fold-range-latex-environment)
+    (math_environment . ts-fold-range-latex-environment)
+    (section            . ts-fold-range-latex-section)
+    (subsection                 . ts-fold-range-latex-section)
+    (subsubsection      . ts-fold-range-latex-section)
+    (curly_group        . ts-fold-range-seq)
     (line_comment
      . (lambda (node offset)
          (ts-fold-range-line-comment node offset "%")))))
diff --git a/ts-fold.el b/ts-fold.el
index 827f9d1f66..aaefa18230 100644
--- a/ts-fold.el
+++ b/ts-fold.el
@@ -1154,6 +1154,30 @@ more information."
               (end (tsc-node-end-position node)))
     (ts-fold--cons-add (cons (+ beg 3) (- end 3)) offset)))
 
+(defun ts-fold-range-latex-section (node offset)
+  "Define fold range for latex section.
+
+For arguments NODE and OFFSET, see function `ts-fold-range-seq' for
+more information."
+  (when-let* ((lab-node (car (ts-fold-find-children node "curly_group")))
+             (beg (tsc-node-end-position lab-node))
+             (end (tsc-node-end-position node)))
+    (ts-fold--cons-add (cons beg end) offset)
+    )
+  )
+
+(defun ts-fold-range-latex-environment (node offset)
+  "Define fold range for latex environments.
+
+For arguments NODE and OFFSET, see function `ts-fold-range-seq' for
+more information."
+  (when-let* ((beg-node (tsc-get-child-by-field node :begin))
+             (end-node (tsc-get-child-by-field node :end))
+             (beg (tsc-node-end-position beg-node))
+             (end (tsc-node-start-position end-node)))
+    (ts-fold--cons-add (cons beg end) offset))
+  )
+
 (defun ts-fold-range-matlab-function (node offset)
   "Define fold range for MATLAB function definitions.
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]