]> code.delx.au - gnu-emacs-elpa/commitdiff
swiper.el (swiper-map): Bind "C-l" to recenter
authorOleh Krehel <ohwoeowho@gmail.com>
Fri, 27 Mar 2015 18:50:05 +0000 (19:50 +0100)
committerOleh Krehel <ohwoeowho@gmail.com>
Fri, 27 Mar 2015 18:50:05 +0000 (19:50 +0100)
* swiper.el (swiper-map): Update.
(swiper-recenter-top-bottom): New defun.
(swiper--update-input-ivy): Use `<=' in order for `recenter-top-bottom'
to work.

swiper.el

index ffb0f4a38d839a0a6cbcd58f9135f8199a1c4aa7..7a418c9143f926c6341a277f425b93d8c6de9341 100644 (file)
--- a/swiper.el
+++ b/swiper.el
@@ -75,6 +75,7 @@
 (defvar swiper-map
   (let ((map (make-sparse-keymap)))
     (define-key map (kbd "M-q") 'swiper-query-replace)
+    (define-key map (kbd "C-l") 'swiper-recenter-top-bottom)
     map)
   "Keymap for swiper.")
 
       (swiper--cleanup)
       (exit-minibuffer))))
 
+(defun swiper-recenter-top-bottom (&optional arg)
+  "Call (`recenter-top-bottom' ARG) in `swiper--window'."
+  (interactive "P")
+  (with-selected-window swiper--window
+    (recenter-top-bottom arg)))
+
 (defvar swiper--window nil
   "Store the current window.")
 
@@ -222,8 +229,8 @@ When non-nil, INITIAL-INPUT is the initial search pattern."
         (forward-line (1- num))
         (isearch-range-invisible (line-beginning-position)
                                  (line-end-position))
-        (unless (and (> (point) (window-start))
-                     (< (point) (window-end swiper--window t)))
+        (unless (and (>= (point) (window-start))
+                     (<= (point) (window-end swiper--window t)))
           (recenter)))
       (let ((ov (make-overlay
                  (line-beginning-position)