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

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

[elpa] master 8b08cc0 08/57: ivy.el (ivy-done): Simplify and improve


From: Oleh Krehel
Subject: [elpa] master 8b08cc0 08/57: ivy.el (ivy-done): Simplify and improve
Date: Tue, 19 May 2015 14:21:21 +0000

branch: master
commit 8b08cc031f1bf5e3b7660b2329d06a2117f85759
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    ivy.el (ivy-done): Simplify and improve
    
    * ivy.el (ivy--done): New defun.
    (ivy-done): Consider `confirm-nonexistent-file-or-buffer' for buffers as
    well.
    
    Fixes #76
---
 ivy.el |   57 +++++++++++++++++++++++++++------------------------------
 1 files changed, 27 insertions(+), 30 deletions(-)

diff --git a/ivy.el b/ivy.el
index 795aa9d..fb1b74c 100644
--- a/ivy.el
+++ b/ivy.el
@@ -185,41 +185,38 @@ When non-nil, it should contain one %d.")
 
 (defvar Info-current-file)
 
+(defun ivy--done (text)
+  "Insert TEXT and exit minibuffer."
+  (insert
+   (if ivy--directory
+       (expand-file-name
+        text ivy--directory)
+     text))
+  (setq ivy-exit 'done)
+  (exit-minibuffer))
+
 ;;* Commands
 (defun ivy-done ()
   "Exit the minibuffer with the selected candidate."
   (interactive)
   (delete-minibuffer-contents)
-  (when (cond (ivy--directory
-               (if (zerop ivy--length)
-                   (if (or (not (eq confirm-nonexistent-file-or-buffer t))
-                           (equal " (confirm)" ivy--prompt-extra))
-                       (progn
-                         (insert
-                          (expand-file-name ivy-text ivy--directory))
-                         (setq ivy-exit 'done))
-                     (setq ivy--prompt-extra " (confirm)")
-                     (insert ivy-text)
-                     (ivy--exhibit)
-                     nil)
-                 (insert
-                  (expand-file-name
-                   ivy--current ivy--directory))
-                 (setq ivy-exit 'done)))
-              ((zerop ivy--length)
-               (if (memq (ivy-state-require-match ivy-last)
-                         '(nil confirm confirm-after-completion))
-                   (progn
-                     (insert ivy-text)
-                     (setq ivy-exit 'done))
-                 (setq ivy--prompt-extra " (match required)")
-                 (insert ivy-text)
-                 (ivy--exhibit)
-                 nil))
-              (t
-               (insert ivy--current)
-               (setq ivy-exit 'done)))
-    (exit-minibuffer)))
+  (cond ((> ivy--length 0)
+         (ivy--done ivy--current))
+        ((memq (ivy-state-collection ivy-last)
+               '(read-file-name-internal internal-complete-buffer))
+         (if (or (not (eq confirm-nonexistent-file-or-buffer t))
+                 (equal " (confirm)" ivy--prompt-extra))
+             (ivy--done ivy-text)
+           (setq ivy--prompt-extra " (confirm)")
+           (insert ivy-text)
+           (ivy--exhibit)))
+        ((memq (ivy-state-require-match ivy-last)
+               '(nil confirm confirm-after-completion))
+         (ivy--done ivy-text))
+        (t
+         (setq ivy--prompt-extra " (match required)")
+         (insert ivy-text)
+         (ivy--exhibit))))
 
 (defun ivy-build-tramp-name (x)
   "Reconstruct X into a path.



reply via email to

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