branch: elpa/treesit-fold
commit 1b82d0c5da20d2f596c5742cbb3599f8573a7fb1
Author: [email protected] <[email protected]>
Commit: [email protected] <[email protected]>

    fix: Ron struct folding
---
 treesit-fold-parsers.el |  3 ++-
 treesit-fold.el         | 10 ++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/treesit-fold-parsers.el b/treesit-fold-parsers.el
index 18618526774..2b0864b3217 100644
--- a/treesit-fold-parsers.el
+++ b/treesit-fold-parsers.el
@@ -93,6 +93,7 @@
 (declare-function treesit-fold-range-python-block "treesit-fold.el")
 (declare-function treesit-fold-range-python-def "treesit-fold.el")
 (declare-function treesit-fold-range-python-expression-statement 
"treesit-fold.el")
+(declare-function treesit-fold-range-ron-struct "treesit-fold.el")
 (declare-function treesit-fold-range-rst-body "treesit-fold.el")
 (declare-function treesit-fold-range-ruby-class-def "treesit-fold.el")
 (declare-function treesit-fold-range-ruby-if "treesit-fold.el")
@@ -630,7 +631,7 @@
   "Rule set for RON."
   '((array  . treesit-fold-range-seq)
     (map    . treesit-fold-range-seq)
-    (struct . treesit-fold-range-seq)
+    (struct . treesit-fold-range-ron-struct)
     (line_comment
      . (lambda (node offset)
          (treesit-fold-range-line-comment node
diff --git a/treesit-fold.el b/treesit-fold.el
index b5d87daab52..57838fe4818 100644
--- a/treesit-fold.el
+++ b/treesit-fold.el
@@ -1456,6 +1456,16 @@ more information."
               (end (treesit-node-end node)))
     (treesit-fold--cons-add (cons (+ beg 3) (- end 3)) offset)))
 
+(defun treesit-fold-range-ron-struct (node offset)
+  "Define fold range for `struct' in RON.
+
+For arguments NODE and OFFSET, see function `treesit-fold-range-seq' for
+more information."
+  (when-let* ((node-bracket (car (treesit-fold-find-children node "(")))
+              (beg (treesit-node-end node-bracket))
+              (end (1- (treesit-node-end node))))
+    (treesit-fold--cons-add (cons beg end) offset)))
+
 (defun treesit-fold-range-rst-body (node offset)
   "Define fold range for `body' in reStructuredText.
 

Reply via email to