emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master 4a37e1e 314/399: swiper.el (swiper-query-replace): Make ev


From: Oleh Krehel
Subject: [elpa] master 4a37e1e 314/399: swiper.el (swiper-query-replace): Make eval-style replacement more accessible
Date: Sat, 20 Jul 2019 14:57:47 -0400 (EDT)

branch: master
commit 4a37e1ed6c1ae5e6152b4b5a57f042ec3d5863f3
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    swiper.el (swiper-query-replace): Make eval-style replacement more 
accessible
    
    For example, suppose in swiper.el, we want to rename:
    
        (defTYPE swiper- to (defTYPE ivy
    
    where TYPE is (group, face, fun, var ...).
    
    1. `swiper-isearch' for "(def\sw+ swiper"
    2. "M-q" to replace and "TAB" to get: "\,(concat \1 " " \2)"
    3. Modify it to "\,(concat \1 " ivy")"
    
    Re #2096
---
 swiper.el | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/swiper.el b/swiper.el
index 620416c..06a9bb2 100644
--- a/swiper.el
+++ b/swiper.el
@@ -184,17 +184,19 @@
          (unwind-protect
               (let* ((enable-recursive-minibuffers t)
                      (from (ivy--regex ivy-text))
+                     (default
+                      (format "\\,(concat %s)"
+                              (if (<= ivy--subexps 1)
+                                  "\\&"
+                                (mapconcat (lambda (i) (format "\\%d" i))
+                                           (number-sequence 1 ivy--subexps)
+                                           " \" \" "))))
                      (to
                       (query-replace-compile-replacement
-                       (minibuffer-with-setup-hook
-                           (lambda ()
-                             (setq minibuffer-default
-                                   (if (string-match 
"\\`\\\\_<\\(.*\\)\\\\_>\\'" ivy-text)
-                                       (match-string 1 ivy-text)
-                                     ivy-text)))
-                         (ivy-read
-                          (format "Query replace %s with: " from) nil
-                          :update-fn #'swiper--query-replace-updatefn))
+                       (ivy-read
+                        (format "Query replace %s with: " from) nil
+                        :def default
+                        :update-fn #'swiper--query-replace-updatefn)
                        t)))
                 (swiper--cleanup)
                 (ivy-exit-with-action



reply via email to

[Prev in Thread] Current Thread [Next in Thread]