[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/treesit-fold f13f0c371b 102/417: Core
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/treesit-fold f13f0c371b 102/417: Core |
Date: |
Mon, 1 Jul 2024 10:02:15 -0400 (EDT) |
branch: elpa/treesit-fold
commit f13f0c371bb65ebbb8ed1d12e8e40ed0d66f3e82
Author: Jen-Chieh Shen <jcs090218@gmail.com>
Commit: Jen-Chieh Shen <jcs090218@gmail.com>
Core
---
tree-sitter-fold.el | 26 +++++++++++++++++---------
1 file changed, 17 insertions(+), 9 deletions(-)
diff --git a/tree-sitter-fold.el b/tree-sitter-fold.el
index 289030e2fb..e3ed14a20f 100644
--- a/tree-sitter-fold.el
+++ b/tree-sitter-fold.el
@@ -323,15 +323,22 @@ If the current syntax node is not foldable, do nothing."
"Return t, if content NODE is single line."
(string-match-p "\n" (tsc-node-text node)))
-(defun tree-sitter-fold--last-continuous-node-prefix (node prefix)
- "Return the "
- (let ((next-node (tsc-get-next-sibling node)) text break last-node)
- (while (and next-node (not break))
- (setq text (tsc-node-text next-node))
+(defun tree-sitter-fold--next-prev-node (node next)
+ "Return previous/next sibling node starting from NODE.
+
+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--continuous-node-prefix (node prefix next)
+ "Iterate through node starting from NODE and compare node-text to PREFIX;
+then return the last iterated node."
+ (let ((iter-node (tree-sitter-fold--next-prev-node node next)) text break
last-node)
+ (while (and iter-node (not break))
+ (setq text (tsc-node-text iter-node))
(if (string-prefix-p prefix text)
- (setq last-node next-node)
+ (setq last-node iter-node)
(setq break t))
- (setq next-node (tsc-get-next-sibling next-node)))
+ (setq iter-node (tree-sitter-fold--next-prev-node iter-node next)))
last-node))
(defun tree-sitter-fold-range-seq (node offset)
@@ -344,8 +351,9 @@ If the current syntax node is not foldable, do nothing."
"Define fold range for C# comment."
(if (tree-sitter-fold--multi-line node)
(tree-sitter-fold-range-seq node (tree-sitter-fold-util--cons-add '(1 .
-1) offset))
- (when-let* ((last-node (tree-sitter-fold--last-continuous-node-prefix node
"///"))
- (beg (+ (tsc-node-start-position node) 3))
+ (when-let* ((first-node (tree-sitter-fold--continuous-node-prefix node
"///" nil))
+ (last-node (tree-sitter-fold--continuous-node-prefix node
"///" t))
+ (beg (+ (tsc-node-start-position first-node) 3))
(end (tsc-node-end-position last-node)))
(tree-sitter-fold-util--cons-add (cons beg end) offset))))
- [nongnu] elpa/treesit-fold 362fc74774 011/417: R: fold brace_list instead, (continued)
- [nongnu] elpa/treesit-fold 362fc74774 011/417: R: fold brace_list instead, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold f0858f1dbc 009/417: add support for R, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold b3faaaa40d 015/417: support folding nix functions, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold de5ad4b2f2 063/417: Split uitl, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold d07b2bae49 065/417: Complete indicators, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold d2c13aac81 069/417: Clean compile, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 4d4526ffb3 073/417: Update core, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 2dfd8c1656 083/417: Add support lang, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 5c9981872e 095/417: Restrict one, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 2ba784bea0 093/417: Fix externals, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold f13f0c371b 102/417: Core,
ELPA Syncer <=
- [nongnu] elpa/treesit-fold 80b8e2b6dc 138/417: Fix code block syntax, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold fe9b69359c 150/417: Correct external calls, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 946eebf84a 151/417: Update do, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 38cb89733b 156/417: Link indicators mode gif, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 64bb378142 158/417: Scale to 40%, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold d3e7f9bb05 152/417: Improve c macro, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 3d40d76ad4 165/417: Fix void mulitline, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold a035da60ad 202/417: apply, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold d58795618a 199/417: Update README.md, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold afa4f3b9a0 216/417: Merge pull request #11 from jcs-elpa/docs, ELPA Syncer, 2024/07/01