branch: elpa/treesit-fold
commit d8a4bb568b204b89882d2bb883edd2e7e88a391b
Author: JenChieh <[email protected]>
Commit: JenChieh <[email protected]>
feat: Ensure indicators is refreshed after show/hide
---
treesit-fold.el | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/treesit-fold.el b/treesit-fold.el
index bca11c169e..aed35b84db 100644
--- a/treesit-fold.el
+++ b/treesit-fold.el
@@ -345,12 +345,14 @@ This function is borrowed from
`tree-sitter-node-at-point'."
(overlay-put ov 'modification-hooks '(treesit-fold--on-change))
(overlay-put ov 'insert-in-front-hooks '(treesit-fold--on-change))
(overlay-put ov 'isearch-open-invisible #'treesit-fold--on-change)
- (overlay-put ov 'isearch-open-invisible-temporary
- (lambda (ov hide-p)
- (if hide-p (treesit-fold--hide-ov ov)
- (treesit-fold--show-ov ov))))
+ (overlay-put ov 'isearch-open-invisible-temporary
#'treesit-fold--open-invisible-temporary)
ov)))
+(defun treesit-fold--open-invisible-temporary (ov hide-p)
+ "Temporary show/hide OV depends on HIDE-P flag."
+ (if hide-p (treesit-fold--hide-ov ov)
+ (treesit-fold--show-ov ov)))
+
(defun treesit-fold--on-change (ov &rest _)
"Open overlay OV during content is changed."
(delete-overlay ov))
@@ -359,7 +361,8 @@ This function is borrowed from `tree-sitter-node-at-point'."
"Show the OV."
(overlay-put ov 'invisible nil)
(overlay-put ov 'display nil)
- (overlay-put ov 'face nil))
+ (overlay-put ov 'face nil)
+ (treesit-fold-indicators-refresh))
(defun treesit-fold--hide-ov (ov &rest _)
"Hide the OV."
@@ -369,7 +372,8 @@ This function is borrowed from `tree-sitter-node-at-point'."
(overlay-put ov 'display (or (and treesit-fold-summary-show
(treesit-fold-summary--get
(buffer-substring beg end)))
treesit-fold-replacement))
- (overlay-put ov 'face 'treesit-fold-replacement-face)))
+ (overlay-put ov 'face 'treesit-fold-replacement-face))
+ (treesit-fold-indicators-refresh))
(defun treesit-fold-overlay-at (node)
"Return the treesit-fold overlay at NODE if NODE is foldable and folded.