]> git.eshelyaron.com Git - emacs.git/commitdiff
Steamline xref-query-replace-in-results
authorDmitry Gutov <dgutov@yandex.ru>
Fri, 14 Jan 2022 02:30:16 +0000 (04:30 +0200)
committerDmitry Gutov <dgutov@yandex.ru>
Fri, 14 Jan 2022 02:30:25 +0000 (04:30 +0200)
* lisp/progmodes/xref.el (xref-query-replace-in-results):
Steamline the most common scenario
(https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00864.html).

etc/NEWS
lisp/progmodes/xref.el

index 06a6886ebf60b6d7777673e9d40a1885be54a7c2..8fd717cfc8782046354e71ca778dab260ea055b2 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -594,6 +594,10 @@ to enable the display of the buffer list.
 It is bound to 'C-M-,' and jumps to the location where 'xref-go-back'
 ('M-,', also known as 'xref-pop-marker-stack') was invoked previously.
 
+*** 'xref-query-replace-in-results' only prompts for TO when called
+without prefix argument, to make the most common case faster:
+replacing all matches entirely.
+
 ** File notifications
 
 +++
index 9ce63a8f8a1e5ac5016c18629f01bfa47e3b7bce..06faf16a31aa49293c4b8868106282d33d2dbe34 100644 (file)
@@ -738,11 +738,20 @@ quit the *xref* buffer."
   "Perform interactive replacement of FROM with TO in all displayed xrefs.
 
 This command interactively replaces FROM with TO in the names of the
-references displayed in the current *xref* buffer."
+references displayed in the current *xref* buffer.
+
+When called interactively, it uses '.*' as FROM, which means
+replace the whole name.  Unless called with prefix argument, in
+which case the user is prompted for both FROM and TO."
   (interactive
-   (let ((fr (read-regexp "Xref query-replace (regexp)" ".*")))
-     (list fr
-           (read-regexp (format "Xref query-replace (regexp) %s with: " fr)))))
+   (let* ((fr
+           (if prefix-arg
+               (read-regexp "Query-replace (regexp)" ".*")
+             ".*"))
+          (prompt (if prefix-arg
+                      (format "Query-replace (regexp) %s with: " fr)
+                    "Query-replace all matches with: ")))
+     (list fr (read-regexp prompt))))
   (let* (item xrefs iter)
     (save-excursion
       (while (setq item (xref--search-property 'xref-item))