branch: master
commit 7c6d00d2893dcd41bd60e7f1786a56d4cf151d01
Author: Oleh Krehel <[email protected]>
Commit: Oleh Krehel <[email protected]>
ivy.el (ivy-read): Return immediately for less than 2 candidates
---
ivy.el | 40 ++++++++++++++++++++++------------------
1 files changed, 22 insertions(+), 18 deletions(-)
diff --git a/ivy.el b/ivy.el
index 8a6432d..462067e 100644
--- a/ivy.el
+++ b/ivy.el
@@ -124,24 +124,28 @@ COLLECTION is a list of strings.
If INITIAL-INPUT is non-nil, insert it in the minibuffer initially.
UPDATE-FN is called each time the current candidate(s) is changed.
If INDEX is non-nil select the corresponding candidate."
- (setq ivy--index (or index 0))
- (setq ivy--old-re nil)
- (setq ivy--old-cands nil)
- (setq ivy-text "")
- (setq ivy--all-candidates collection)
- (setq ivy--update-fn update-fn)
- (setq ivy-exit nil)
- (setq ivy--default (or (thing-at-point 'symbol) ""))
- (unwind-protect
- (minibuffer-with-setup-hook
- #'ivy--minibuffer-setup
- (read-from-minibuffer
- prompt
- initial-input
- ivy-minibuffer-map
- nil
- 'ivy-history))
- (remove-hook 'post-command-hook #'ivy--exhibit)))
+ (cl-case (length collection)
+ (0 nil)
+ (1 (car collection))
+ (t
+ (setq ivy--index (or index 0))
+ (setq ivy--old-re nil)
+ (setq ivy--old-cands nil)
+ (setq ivy-text "")
+ (setq ivy--all-candidates collection)
+ (setq ivy--update-fn update-fn)
+ (setq ivy-exit nil)
+ (setq ivy--default (or (thing-at-point 'symbol) ""))
+ (unwind-protect
+ (minibuffer-with-setup-hook
+ #'ivy--minibuffer-setup
+ (read-from-minibuffer
+ prompt
+ initial-input
+ ivy-minibuffer-map
+ nil
+ 'ivy-history))
+ (remove-hook 'post-command-hook #'ivy--exhibit)))))
(defvar ivy-text ""
"Stores the user's string as it is typed in.")