[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/treesit-fold 5c9981872e 095/417: Restrict one
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/treesit-fold 5c9981872e 095/417: Restrict one |
Date: |
Mon, 1 Jul 2024 10:02:15 -0400 (EDT) |
branch: elpa/treesit-fold
commit 5c9981872edeec7be1683d820c16829d0ce1449c
Author: Jen-Chieh Shen <jcs090218@gmail.com>
Commit: Jen-Chieh Shen <jcs090218@gmail.com>
Restrict one
---
tree-sitter-fold.el | 30 ++++++++++++++++++++----------
1 file changed, 20 insertions(+), 10 deletions(-)
diff --git a/tree-sitter-fold.el b/tree-sitter-fold.el
index bceca73bdd..0fd17c6b9f 100644
--- a/tree-sitter-fold.el
+++ b/tree-sitter-fold.el
@@ -315,30 +315,41 @@ If the current syntax node is not foldable, do nothing."
tree-sitter-fold-open-all
tree-sitter-fold-toggle)))
(dolist (command commands)
- (advice-add command :after (lambda ()
- (tree-sitter-fold-indicators-refresh)))))
+ (advice-add command :after #'tree-sitter-fold-indicators-refresh)))
;;
;; (@* "Languages" )
;;
-(defun tree-sitter-fold-multi-line (node)
+(defun tree-sitter-fold--multi-line (node)
"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))
+ (if (string-prefix-p prefix text)
+ (setq last-node next-node)
+ (setq break t))
+ (setq next-node (tsc-get-next-sibling next-node)))
+ last-node))
+
(defun tree-sitter-fold-range-seq (node offset)
"Return the fold range in sequence."
(let ((beg (1+ (tsc-node-start-position node)))
(end (1- (tsc-node-end-position node))))
- (setq beg (+ beg (car offset)) end (+ end (cdr offset)))
- (cons beg end)))
+ (tree-sitter-fold-util--cons-add (cons beg end) offset)))
(defun tree-sitter-fold-range-csharp-comment (node offset)
"Define fold range for C# comment."
- (if (tree-sitter-fold-multi-line node)
+ (if (tree-sitter-fold--multi-line node)
(tree-sitter-fold-range-seq node (tree-sitter-fold-util--cons-add '(1 .
-1) offset))
- ;; TODO: ..
- nil))
+ (when-let* ((last-node (tree-sitter-fold--last-continuous-node-prefix node
"///"))
+ (beg (+ (tsc-node-start-position node) 3))
+ (end (tsc-node-end-position last-node)))
+ (tree-sitter-fold-util--cons-add (cons beg end) offset))))
(defun tree-sitter-fold-range-python (node offset)
"Return the fold range for `function_definition' and `class_definition'."
@@ -349,8 +360,7 @@ If the current syntax node is not foldable, do nothing."
;; 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)))
+ (tree-sitter-fold-util--cons-add (cons beg end) offset)))
(defun tree-sitter-fold-range-ruby (node offset)
""
- [nongnu] elpa/treesit-fold a806886568 161/417: Update support language list, (continued)
- [nongnu] elpa/treesit-fold a806886568 161/417: Update support language list, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 2409596f33 004/417: readme: fix typo, ELPA Syncer, 2024/07/01
- [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 <=
- [nongnu] elpa/treesit-fold 2ba784bea0 093/417: Fix externals, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold f13f0c371b 102/417: Core, ELPA Syncer, 2024/07/01
- [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