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

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

[nongnu] elpa/treesit-fold 7065c6b28f 122/417: Apply macro


From: ELPA Syncer
Subject: [nongnu] elpa/treesit-fold 7065c6b28f 122/417: Apply macro
Date: Mon, 1 Jul 2024 10:02:18 -0400 (EDT)

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

    Apply macro
---
 tree-sitter-fold.el | 29 ++++++-----------------------
 1 file changed, 6 insertions(+), 23 deletions(-)

diff --git a/tree-sitter-fold.el b/tree-sitter-fold.el
index 26eab2f554..f406c8e6f9 100644
--- a/tree-sitter-fold.el
+++ b/tree-sitter-fold.el
@@ -344,17 +344,6 @@ If the current syntax node is not foldable, do nothing."
 If NEXT is non-nil, return next sibling.  Otherwirse, return previouse 
sibling."
   (if next (tsc-get-next-sibling node) (tsc-get-prev-sibling node)))
 
-(defun tree-sitter-fold--get-node-by-text (node text next)
-  "Return node with matching TEXT.
-Argument NODE is the starting node."
-  (let ((current node) result)
-    (while current
-      (if (string-prefix-p text (string-trim (tsc-node-text current)))
-          (setq result current
-                current nil)
-        (setq current (tree-sitter-fold--next-prev-node current next))))
-    result))
-
 (defun tree-sitter-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.
@@ -415,31 +404,25 @@ more information."
 (defun tree-sitter-fold-range-c-preproc-if (node offset)
   "Define fold range for `if' preprocessor."
   (let* ((named-node (tsc-get-child-by-field node :condition))
-         (next (or (tree-sitter-fold--get-node-by-text named-node "#elif" t)
-                   (tree-sitter-fold--get-node-by-text named-node "#else" t)
-                   (tree-sitter-fold--get-node-by-text named-node "#endif" t)))
+         (else (tsc-get-child-by-field node :alternative))
          (beg (tsc-node-end-position named-node))
-         (end (1- (tsc-node-start-position next))))
+         (end (1- (tsc-node-start-position else))))
     (tree-sitter-fold-util--cons-add (cons beg end) offset)))
 
 (defun tree-sitter-fold-range-c-preproc-ifdef (node offset)
   "Define fold range for `ifdef' and `ifndef' preprocessor."
   (when-let* ((named-node (tsc-get-child-by-field node :name))
-              (next (or (tree-sitter-fold--get-node-by-text named-node "#elif" 
t)
-                        (tree-sitter-fold--get-node-by-text named-node "#else" 
t)
-                        (tree-sitter-fold--get-node-by-text named-node 
"#endif" t)))
+              (else (tsc-get-child-by-field node :alternative))
               (beg (tsc-node-end-position named-node))
-              (end (1- (tsc-node-start-position next))))
+              (end (1- (tsc-node-start-position else))))
     (tree-sitter-fold-util--cons-add (cons beg end) offset)))
 
 (defun tree-sitter-fold-range-c-preproc-elif (node offset)
   "Define fold range for `elif' preprocessor."
   (when-let* ((named-node (tsc-get-child-by-field node :condition))
-              (next (or (tree-sitter-fold--get-node-by-text named-node "#elif" 
t)  ; search itself
-                        (tree-sitter-fold--get-node-by-text named-node "#else" 
t)
-                        (tree-sitter-fold--get-node-by-text named-node 
"#endif" t)))
+              (else (tsc-get-child-by-field node :alternative))
               (beg (tsc-node-end-position named-node))
-              (end (1- (tsc-node-start-position next))))
+              (end (1- (tsc-node-start-position else))))
     (tree-sitter-fold-util--cons-add (cons beg end) offset)))
 
 (defun tree-sitter-fold-range-c-preproc-else (node offset)



reply via email to

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