]> git.eshelyaron.com Git - emacs.git/commitdiff
Improve isearch in auto-narrow-mode.
authorGregory Heytings <gregory@heytings.org>
Wed, 6 Jul 2022 12:32:51 +0000 (12:32 +0000)
committerGregory Heytings <gregory@heytings.org>
Wed, 6 Jul 2022 12:41:58 +0000 (14:41 +0200)
* lisp/isearch.el (isearch-search): Set isearch-lazy-highlight to nil before
widening in auto-narrow-mode.

* lisp/files.el (auto-narrow--isearch-lazy-highlight): New internal variable.
(auto-narrow-pre-command-function, auto-narrow-post-command-function): Use it.

lisp/files.el
lisp/isearch.el

index 8d6ecb66bc688027fac37f8c908157d6f7d223f3..89c7334c5a47608d3b08ad22051b5c612a804e6d 100644 (file)
@@ -2726,6 +2726,9 @@ beginning and end of the buffer."
 (defvar-local auto-narrow--isearch-widen-automatically nil
   "Internal variable used by `auto-narrow-mode'.")
 
+(defvar-local auto-narrow--isearch-lazy-highlight nil
+  "Internal variable used by `auto-narrow-mode'.")
+
 (defvar-local auto-narrow--initialized nil
   "Internal variable used by `auto-narrow-mode'.")
 
@@ -2733,7 +2736,8 @@ beginning and end of the buffer."
   "Conditionally widen display when `auto-narrow-mode' is in effect."
   (when auto-narrow-mode
     (setq-local widen-automatically t
-                isearch-widen-automatically t)
+                isearch-widen-automatically t
+                isearch-lazy-highlight auto-narrow--isearch-lazy-highlight)
     (if (memq this-command '(narrow-to-region narrow-to-defun narrow-to-page))
         (setq auto-narrow--narrowing-state 'explicit
               widen-automatically auto-narrow--widen-automatically
@@ -2752,6 +2756,7 @@ beginning and end of the buffer."
       (run-hooks 'auto-narrow-hook)
       (setq auto-narrow--widen-automatically widen-automatically
             auto-narrow--isearch-widen-automatically isearch-widen-automatically
+            auto-narrow--isearch-lazy-highlight isearch-lazy-highlight
             auto-narrow--narrowing-state 'auto
             auto-narrow--initialized t))
     (let (point cur-point-min buf-point-min buf-point-max size)
index a6e034df6b95a415472b5dca5f3371e97d6f3026..29036201ad8290b1e477c7317bbfe5ec03f67bf3 100644 (file)
@@ -3658,7 +3658,10 @@ Optional third argument, if t, means if fail just return nil (no error).
                (isearch-search-string isearch-string nil t))
           (if (and (not isearch-success) (buffer-narrowed-p)
                    isearch-widen-automatically widen-automatically)
-              (widen)
+              (progn
+                (when auto-narrow-mode
+                  (setq-local isearch-lazy-highlight nil))
+                (widen))
            ;; Clear RETRY unless the search predicate says
            ;; to skip this search hit.
            (if (or (not isearch-success)