branch: master
commit 02065be07453d243c6e1b49d5fdd01ba685c8419
Author: Oleh Krehel <[email protected]>
Commit: Oleh Krehel <[email protected]>
swiper.el: Restore original point on canceling
* swiper.el (swiper--opoint): New defvar.
(swiper): Update.
(swiper--ivy): Update.
Fixes #9.
---
swiper.el | 33 ++++++++++++++++++++-------------
1 files changed, 20 insertions(+), 13 deletions(-)
diff --git a/swiper.el b/swiper.el
index afc1642..b838124 100644
--- a/swiper.el
+++ b/swiper.el
@@ -110,11 +110,15 @@
map)
"Allows you to go to next and previous hit isearch-style.")
+(defvar swiper--opoint
+ "The point when `swiper' starts.")
+
;;;###autoload
(defun swiper (&optional initial-input)
"`isearch' with an overview.
When non-nil, INITIAL-INPUT is the initial search pattern."
(interactive)
+ (setq swiper--opoint (point))
(if (and (eq 'swiper-completion-method 'helm)
(featurep 'helm))
(swiper--helm initial-input)
@@ -133,19 +137,22 @@ When non-nil, INITIAL-INPUT is the initial search
pattern."
(interactive)
(ido-mode -1)
(swiper--init)
- (unwind-protect
- (let ((res (ivy-read "pattern: "
- (swiper--candidates)
- initial-input
- #'swiper--update-input-ivy)))
- (goto-char (point-min))
- (forward-line (1- (read res)))
- (re-search-forward
- (ivy--regex ivy-text)
- (line-end-position)
- t))
- (ido-mode 1)
- (swiper--cleanup)))
+ (let (res)
+ (unwind-protect
+ (setq res (ivy-read "pattern: "
+ (swiper--candidates)
+ initial-input
+ #'swiper--update-input-ivy))
+ (ido-mode 1)
+ (swiper--cleanup)
+ (if (null ivy-exit)
+ (goto-char swiper--opoint)
+ (goto-char (point-min))
+ (forward-line (1- (read res)))
+ (re-search-forward
+ (ivy--regex ivy-text)
+ (line-end-position)
+ t)))))
(defun swiper--helm (&optional initial-input)
"`isearch' with an overview using `helm'.