branch: elpa/treesit-fold
commit a68579c4f78724ab333fb0c0b9cf7350e9c5766b
Author: Jen-Chieh Shen <[email protected]>
Commit: Jen-Chieh Shen <[email protected]>

    Fix ind overlays
---
 tree-sitter-fold-indicators.el | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/tree-sitter-fold-indicators.el b/tree-sitter-fold-indicators.el
index a1283294b3..802b5caf00 100644
--- a/tree-sitter-fold-indicators.el
+++ b/tree-sitter-fold-indicators.el
@@ -164,17 +164,18 @@
     (overlay-put ov 'creator 'tree-sitter-fold-indicators)
     ov))
 
-(defun tree-sitter-fold-indicators--create-overlays (node beg end)
-  "Return a list of indicator overlays from BEG to END."
+(defun tree-sitter-fold-indicators--create-overlays (beg end show)
+  "Return a list of indicator overlays.
+
+Argument BEG and END are range to create indicators.  Argument SHOW is the flag
+defined folded region."
   (let (ov-lst)
     (save-excursion
       (goto-char beg)
       (while (and (<= (line-beginning-position) end) (not (eobp)))
         (push (tree-sitter-fold-indicators--create-overlay-at-point) ov-lst)
         (forward-line 1)))
-    (tree-sitter-fold-indicators--update-overlays
-     (reverse ov-lst)
-     (not (tree-sitter-fold-overlay-at node)))))
+    (tree-sitter-fold-indicators--update-overlays (reverse ov-lst) show)))
 
 (defun tree-sitter-fold-indicators--get-priority (bitmap)
   "Get priority by BITMAP."
@@ -239,9 +240,10 @@
 
 (defun tree-sitter-fold-indicators--create (node)
   "Create indicators with NODE."
-  (let ((beg (tsc-node-start-position node))
-        (end (tsc-node-end-position node)))
-    (tree-sitter-fold-indicators--create-overlays node beg end)))
+  (when-let* ((range (tree-sitter-fold--get-fold-range node))
+              (beg (car range)) (end (cdr range)))
+    (let ((show (not (tree-sitter-fold-overlay-at node))))
+      (tree-sitter-fold-indicators--create-overlays beg end show))))
 
 ;;;###autoload
 (defun tree-sitter-fold-indicators-refresh (&rest _)

Reply via email to