emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master 3699fa9 041/167: Don't reset the match to first if the cur


From: Oleh Krehel
Subject: [elpa] master 3699fa9 041/167: Don't reset the match to first if the current one still works
Date: Tue, 08 Dec 2015 10:49:47 +0000

branch: master
commit 3699fa9b416ba129c448cb60a1eb016d3a820ee9
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    Don't reset the match to first if the current one still works
    
    * ivy.el (ivy--recompute-index): If the old match is still located in
      the current matches after the change in input, keep it selected.
    
    * ivy-test.el (ivy-read): Add test.
    
    Fixes #258
---
 ivy-test.el |    6 +++++-
 ivy.el      |    5 ++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/ivy-test.el b/ivy-test.el
index 384cd4d..5c77394 100644
--- a/ivy-test.el
+++ b/ivy-test.el
@@ -68,7 +68,11 @@
            (ivy-with '(let ((ivy-re-builders-alist '((t . ivy--regex-fuzzy))))
                        (ivy-read "pattern: " '("package-list-packages" 
"something-else")))
                      "plp C-m")
-           "package-list-packages")))
+           "package-list-packages"))
+  (should (equal
+           (ivy-with '(ivy-read "test" '("aaab" "aaac"))
+                     "a C-n <tab> C-m")
+           "aaac")))
 
 (ert-deftest swiper--re-builder ()
   (setq swiper--width 4)
diff --git a/ivy.el b/ivy.el
index 02b6c73..235aca7 100644
--- a/ivy.el
+++ b/ivy.el
@@ -1612,7 +1612,10 @@ CANDIDATES are assumed to be static."
          (func (or (and caller (cdr (assoc caller ivy-index-functions-alist)))
                    (cdr (assoc t ivy-index-functions-alist))
                    #'ivy-recompute-index-zero)))
-    (setq ivy--index (funcall func re-str cands))
+    (setq ivy--index
+          (or (cl-position (nth ivy--index ivy--old-cands)
+                           cands)
+              (funcall func re-str cands)))
     (when (and (or (string= name "")
                    (string= name "^"))
                (not (equal ivy--old-re "")))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]