]> code.delx.au - gnu-emacs-elpa/blobdiff - swiper.el
counsel.el (counsel-grep-or-swiper): New command
[gnu-emacs-elpa] / swiper.el
index 6c22e48353c73d45a6546c093bcdaad14167a019..90e25b5f39c200e0aef2549d8648ea5bfecee2a9 100644 (file)
--- a/swiper.el
+++ b/swiper.el
       (user-error "Should only be called in the minibuffer through `swiper-map'")
     (let* ((enable-recursive-minibuffers t)
            (from (ivy--regex ivy-text))
-           (to (query-replace-read-to from "Query replace" t)))
+           (to (minibuffer-with-setup-hook
+                   (lambda ()
+                     (setq minibuffer-default
+                           (if (string-match "\\`\\\\_<\\(.*\\)\\\\_>\\'" ivy-text)
+                               (match-string 1 ivy-text)
+                             ivy-text)))
+                 (read-from-minibuffer (format "Query replace %s with: " from)))))
       (swiper--cleanup)
       (ivy-exit-with-action
        (lambda (_)
 (declare-function mc/create-fake-cursor-at-point "ext:multiple-cursors-core")
 (declare-function multiple-cursors-mode "ext:multiple-cursors-core")
 
-;;;###autoload
 (defun swiper-mc ()
-  (interactive)
   (unless (require 'multiple-cursors nil t)
     (error "multiple-cursors isn't installed"))
   (let ((cands (nreverse ivy--old-cands)))
@@ -294,8 +298,7 @@ numbers; replaces calculating the width from buffer line count."
                            (buffer-substring
                             (point)
                             (line-end-position)))))))
-              (when (eq major-mode 'twittering-mode)
-                (remove-text-properties 0 (length str) '(field) str))
+              (remove-text-properties 0 (length str) '(field) str)
               (put-text-property 0 1 'display
                                  (format swiper--format-spec
                                          (cl-incf line-number))
@@ -340,11 +343,12 @@ When REVERT is non-nil, regenerate the current *ivy-occur* buffer."
                  (if (null revert)
                      ivy--old-cands
                    (setq ivy--old-re nil)
-                   (ivy--filter
-                    (progn (string-match "\"\\(.*\\)\"" (buffer-name))
-                           (match-string 1 (buffer-name)))
-                    (with-current-buffer buffer
-                      (swiper--candidates)))))))
+                   (let ((ivy--regex-function 'swiper--re-builder))
+                     (ivy--filter
+                      (progn (string-match "\"\\(.*\\)\"" (buffer-name))
+                             (match-string 1 (buffer-name)))
+                      (with-current-buffer buffer
+                        (swiper--candidates))))))))
     (unless (eq major-mode 'ivy-occur-grep-mode)
       (ivy-occur-grep-mode)
       (font-lock-mode -1))