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

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

[nongnu] elpa/treesit-fold ac7f2d0071 084/417: Try ruby


From: ELPA Syncer
Subject: [nongnu] elpa/treesit-fold ac7f2d0071 084/417: Try ruby
Date: Mon, 1 Jul 2024 10:02:14 -0400 (EDT)

branch: elpa/treesit-fold
commit ac7f2d0071e478f9dab3aff179d082ad366e47e5
Author: Jen-Chieh Shen <jcs090218@gmail.com>
Commit: Jen-Chieh Shen <jcs090218@gmail.com>

    Try ruby
---
 tree-sitter-fold-parsers.el |  2 +-
 tree-sitter-fold.el         | 48 ++++++++++++++++++++++++---------------------
 2 files changed, 27 insertions(+), 23 deletions(-)

diff --git a/tree-sitter-fold-parsers.el b/tree-sitter-fold-parsers.el
index 5cb5420fa4..eeb1472b2e 100644
--- a/tree-sitter-fold-parsers.el
+++ b/tree-sitter-fold-parsers.el
@@ -123,7 +123,7 @@
 
 (defun tree-sitter-fold-parsers-ruby ()
   "Rule sets for Ruby."
-  '(()))
+  '((if . (tree-sitter-fold-range-seq 1 -2))))
 
 (defun tree-sitter-fold-parsers-rust ()
   "Rule sets for Rust."
diff --git a/tree-sitter-fold.el b/tree-sitter-fold.el
index 69224a2ac1..14b7779af1 100644
--- a/tree-sitter-fold.el
+++ b/tree-sitter-fold.el
@@ -329,28 +329,6 @@ If the current syntax node is not foldable, do nothing."
     (setq beg (+ beg (car offset)) end (+ end (cdr offset)))
     (cons beg end)))
 
-(defun tree-sitter-fold-range-python (node offset)
-  "Return the fold range for `function_definition' and `class_definition'."
-  (let* ((named-node (or (tsc-get-child-by-field node :superclasses)
-                         (tsc-get-child-by-field node :return_type)
-                         (tsc-get-child-by-field node :parameters)
-                         (tsc-get-child-by-field node :name)))
-         ;; the colon is an anonymous node after return_type or parameters node
-         (beg (tsc-node-end-position (tsc-get-next-sibling named-node)))
-         (end (tsc-node-end-position node)))
-    (setq beg (+ beg (car offset)) end (+ end (cdr offset)))
-    (cons beg end)))
-
-(defun tree-sitter-fold-range-nix-function (node offset)
-  "Return the fold range for `function' NODE in Nix express language."
-  (let ((beg (thread-first node
-               (tsc-get-child-by-field :formals)
-               (tsc-get-next-sibling)
-               (tsc-node-end-position)))
-        (end (tsc-node-end-position node)))
-    (setq beg (+ beg (car offset)) end (+ end (cdr offset)))
-    (cons beg end)))
-
 (defun tree-sitter-fold-range-go-type-declaration (node offset)
   "Return the fold range for `type_declaration' NODE in Go language.
 Only `struct_type' and `interface_type' nodes can be folded."
@@ -380,5 +358,31 @@ Only `struct_type' and `interface_type' nodes can be 
folded."
     (setq beg (+ beg (car offset)) end (+ end (cdr offset)))
     (cons beg end)))
 
+(defun tree-sitter-fold-range-nix-function (node offset)
+  "Return the fold range for `function' NODE in Nix express language."
+  (let ((beg (thread-first node
+               (tsc-get-child-by-field :formals)
+               (tsc-get-next-sibling)
+               (tsc-node-end-position)))
+        (end (tsc-node-end-position node)))
+    (setq beg (+ beg (car offset)) end (+ end (cdr offset)))
+    (cons beg end)))
+
+(defun tree-sitter-fold-range-python (node offset)
+  "Return the fold range for `function_definition' and `class_definition'."
+  (let* ((named-node (or (tsc-get-child-by-field node :superclasses)
+                         (tsc-get-child-by-field node :return_type)
+                         (tsc-get-child-by-field node :parameters)
+                         (tsc-get-child-by-field node :name)))
+         ;; the colon is an anonymous node after return_type or parameters node
+         (beg (tsc-node-end-position (tsc-get-next-sibling named-node)))
+         (end (tsc-node-end-position node)))
+    (setq beg (+ beg (car offset)) end (+ end (cdr offset)))
+    (cons beg end)))
+
+(defun tree-sitter-fold-range-ruby (node offset)
+  ""
+  )
+
 (provide 'tree-sitter-fold)
 ;;; tree-sitter-fold.el ends here



reply via email to

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