From 119a15123f035d16ed35f96e9002911c724d5e9b Mon Sep 17 00:00:00 2001 From: Oleh Krehel Date: Mon, 11 Apr 2016 16:16:02 +0200 Subject: [PATCH] Make "j"/"k" feedback more solid in ivy-occur buffers * ivy.el (ivy-occur-timer): New defvar. (ivy-occur-press): Do the overlays also for `counsel-grep'. Put `swiper--cleanup' on a 1 second timer. Tip: pressing "c" in *ivy-occur* buffers toggles to "calling state". When in the calling state, "j" and "k" will auto-follow the candidate. --- ivy.el | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ivy.el b/ivy.el index d5ce2b433..7052f4806 100644 --- a/ivy.el +++ b/ivy.el @@ -2912,6 +2912,7 @@ EVENT gives the mouse position." (declare-function swiper--cleanup "swiper") (declare-function swiper--add-overlays "swiper") +(defvar ivy-occur-timer nil) (defun ivy-occur-press () "Execute action for the current candidate." @@ -2944,7 +2945,7 @@ EVENT gives the mouse position." (cdr (assoc str coll)) str)) (if (memq (ivy-state-caller ivy-last) - '(swiper counsel-git-grep)) + '(swiper counsel-git-grep counsel-grep)) (with-current-buffer (window-buffer (selected-window)) (swiper--cleanup) (swiper--add-overlays @@ -2952,7 +2953,9 @@ EVENT gives the mouse position." (line-beginning-position) (line-end-position) (selected-window)) - (run-at-time 0.5 nil 'swiper--cleanup))))))) + (when (timerp ivy-occur-timer) + (cancel-timer ivy-occur-timer)) + (setq ivy-occur-timer (run-at-time 1.0 nil 'swiper--cleanup)))))))) (defvar ivy-help-file (let ((default-directory (if load-file-name -- 2.39.2