]> code.delx.au - gnu-emacs-elpa/commitdiff
ivy.el (ivy-occur-revert-buffer): Improve for counsel-git-grep
authorOleh Krehel <ohwoeowho@gmail.com>
Mon, 4 Apr 2016 15:10:33 +0000 (17:10 +0200)
committerOleh Krehel <ohwoeowho@gmail.com>
Mon, 4 Apr 2016 15:10:33 +0000 (17:10 +0200)
* counsel.el (counsel-git-grep-occur): Avoid calling
  `ivy-occur-grep-mode', since it erases all local variables.

counsel.el
ivy.el

index c4f6c3cbbe1d6225eee1a09b3981cc251faa45b3..16cc2971f09c146f7f64628ea8b93326dff0ac50 100644 (file)
@@ -963,9 +963,11 @@ When NO-ASYNC is non-nil, do it synchronously."
                  (ivy--exhibit)))))))))
 
 (defun counsel-git-grep-occur ()
-  "Generate a custom occur buffer for `counsel-git-grep'."
-  (ivy-occur-grep-mode)
-  (setq default-directory counsel--git-grep-dir)
+  "Generate a custom occur buffer for `counsel-git-grep'.
+When REVERT is non-nil, regenerate the current *ivy-occur* buffer."
+  (unless (eq major-mode 'ivy-occur-grep-mode)
+    (ivy-occur-grep-mode)
+    (setq default-directory counsel--git-grep-dir))
   (let ((cands (split-string
                 (shell-command-to-string
                  (format counsel-git-grep-cmd
diff --git a/ivy.el b/ivy.el
index 000d68e07fc431351a0bf00e050f26d71428044f..5b23a4e3d68eea31a4f64fbab0b8dae160e95eb0 100644 (file)
--- a/ivy.el
+++ b/ivy.el
@@ -2846,13 +2846,17 @@ updated original buffer."
   (interactive)
   (let ((caller (ivy-state-caller ivy-occur-last))
         (ivy-last ivy-occur-last))
-    (when (eq caller 'swiper)
-      (let ((buffer (ivy-state-buffer ivy-occur-last)))
-        (unless (buffer-live-p buffer)
-          (error "buffer was killed"))
-        (let ((inhibit-read-only t))
-          (erase-buffer)
-          (funcall (plist-get ivy--occurs-list caller) t))))))
+    (cond ((eq caller 'swiper)
+           (let ((buffer (ivy-state-buffer ivy-occur-last)))
+             (unless (buffer-live-p buffer)
+               (error "buffer was killed"))
+             (let ((inhibit-read-only t))
+               (erase-buffer)
+               (funcall (plist-get ivy--occurs-list caller) t))))
+          ((memq caller '(counsel-git-grep counsel-grep))
+           (let ((inhibit-read-only t))
+             (erase-buffer)
+             (funcall (plist-get ivy--occurs-list caller)))))))
 
 (declare-function wgrep-change-to-wgrep-mode "ext:wgrep")