]> git.eshelyaron.com Git - emacs.git/commitdiff
Fixup dired-do-find-regexp-and-replace
authorDmitry Gutov <dgutov@yandex.ru>
Mon, 6 Sep 2021 14:07:25 +0000 (17:07 +0300)
committerDmitry Gutov <dgutov@yandex.ru>
Mon, 6 Sep 2021 14:08:07 +0000 (17:08 +0300)
* lisp/dired-aux.el (dired-do-find-regexp-and-replace):
Disregard the customized value of xref-auto-jump-to-first-xref
(it breaks the xref-query-replace-in-results invocation).

* lisp/progmodes/xref.el (xref-auto-jump-to-first-xref):
Mention the caveat for users or xref distributed through ELPA.

lisp/dired-aux.el
lisp/progmodes/xref.el

index 8e00af8f96b8d68ecba824e6b7cda7bdb877e877..c7286429179a3e3df70f4d4ddc834ac75974a708 100644 (file)
@@ -3245,10 +3245,13 @@ REGEXP should use constructs supported by your local `grep' command."
      (list (nth 0 common) (nth 1 common))))
   (require 'xref)
   (defvar xref-show-xrefs-function)
+  (defvar xref-auto-jump-to-first-xref)
   (with-current-buffer
       (let ((xref-show-xrefs-function
              ;; Some future-proofing (bug#44905).
-             (custom--standard-value 'xref-show-xrefs-function)))
+             (custom--standard-value 'xref-show-xrefs-function))
+            ;; Disable auto-jumping, it will mess up replacement logic.
+            xref-auto-jump-to-first-xref)
         (dired-do-find-regexp from))
     (xref-query-replace-in-results from to)))
 
index ec8b05d2943e1df5e6986db63b65dedca392495c..d022baaf04c387cd1ea90b46d0d6db18d05a8c2f 100644 (file)
@@ -432,7 +432,10 @@ focus on the Xref buffer's window.
   "If t, xref commands always jump to the first result.
 `show' means to show the first result's location, but keep the
 focus on the Xref buffer's window.
-`move' means to only move point to the first result."
+`move' means to only move point to the first result.
+
+Please be careful changing this value if you are using Emacs 27
+or earlier: it can break dired-do-find-regexp-and-replace."
   :type '(choice (const :tag "Jump" t)
                  (const :tag "Show" show)
                  (const :tag "Move point only" move)