org-fold-core: Improve integration with isearch API

* lisp/org-fold-core.el (org-fold-core--isearch-show):
(org-fold-core--isearch-show-temporary): Allow REGION argument to be
overlay.

Fixes https://orgmode.org/list/62f834ed.050a0220.afd79.0022SMTPIN_ADDED_BROKEN@mx.google.com
This commit is contained in:
Ihor Radchenko 2022-08-14 08:38:55 +08:00
parent edf46425bb
commit 6cd7c6fb1c
No known key found for this signature in database
GPG Key ID: 6470762A7DA11D8B
1 changed files with 10 additions and 2 deletions

View File

@ -1150,7 +1150,11 @@ This function is intended to be used as `isearch-filter-predicate'."
(clrhash org-fold-core--isearch-local-regions))
(defun org-fold-core--isearch-show (region)
"Reveal text in REGION found by isearch."
"Reveal text in REGION found by isearch.
REGION can also be an overlay in current buffer."
(when (overlayp region)
(setq region (cons (overlay-start region)
(overlay-end region))))
(org-with-point-at (car region)
(while (< (point) (cdr region))
(funcall org-fold-core-isearch-open-function (car region))
@ -1158,7 +1162,11 @@ This function is intended to be used as `isearch-filter-predicate'."
(defun org-fold-core--isearch-show-temporary (region hide-p)
"Temporarily reveal text in REGION.
Hide text instead if HIDE-P is non-nil."
Hide text instead if HIDE-P is non-nil.
REGION can also be an overlay in current buffer."
(when (overlayp region)
(setq region (cons (overlay-start region)
(overlay-end region))))
(if (not hide-p)
(let ((pos (car region)))
(while (< pos (cdr region))