Function: org-fold-core--isearch-setup

org-fold-core--isearch-setup is a byte-compiled function defined in org-fold-core.el.gz.

Signature

(org-fold-core--isearch-setup TYPE)

Documentation

Initialize isearch in org buffer.

TYPE can be either text-properties or overlays.

Source Code

;; Defined in /usr/src/emacs/lisp/org/org-fold-core.el.gz
(defun org-fold-core--isearch-setup (type)
  "Initialize isearch in org buffer.
TYPE can be either `text-properties' or `overlays'."
  (pcase type
    (`text-properties
     (setq-local search-invisible 'open-all)
     (add-hook 'isearch-mode-end-hook #'org-fold-core--clear-isearch-state nil 'local)
     (add-hook 'isearch-mode-hook #'org-fold-core--clear-isearch-state nil 'local)
     (setq-local isearch-filter-predicate #'org-fold-core--isearch-filter-predicate-text-properties))
    (`overlays
     (when (eq org-fold-core-style 'text-properties)
       (add-function :before (local 'isearch-filter-predicate) #'org-fold-core--create-isearch-overlays)
       ;; When `isearch-filter-predicate' is called outside isearch,
       ;; it is common that `isearch-mode-end-hook' does not get
       ;; executed, but `isearch-clean-overlays' usually does.
       (advice-add
        'isearch-clean-overlays :after
        #'org-fold-core--clear-isearch-overlays
        '((name . isearch-clean-overlays@org-fold-core)))))
    (_ (error "%s: Unknown type of setup for `org-fold-core--isearch-setup'" type))))