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

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

[elpa] master 59df2e9 131/167: ivy.el (ivy-alt-done): Refactor


From: Oleh Krehel
Subject: [elpa] master 59df2e9 131/167: ivy.el (ivy-alt-done): Refactor
Date: Tue, 08 Dec 2015 10:50:30 +0000

branch: master
commit 59df2e994af2c0679e9a0fb0dcc22d5e35786adc
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    ivy.el (ivy-alt-done): Refactor
    
    Collect all `ivy--directory' branches into a single `cond'.
---
 ivy.el |  126 ++++++++++++++++++++++++++++++++--------------------------------
 1 files changed, 63 insertions(+), 63 deletions(-)

diff --git a/ivy.el b/ivy.el
index 4ba8cff..f70c54f 100644
--- a/ivy.el
+++ b/ivy.el
@@ -393,31 +393,69 @@ When ARG is t, exit with current text, ignoring the 
candidates."
   (let (dir)
     (cond (arg
            (ivy-immediate-done))
-          ((and ivy--directory
-                (equal ivy-text "/sudo::"))
-           (setq dir (concat ivy-text ivy--directory))
-           (ivy--cd dir)
-           (ivy--exhibit))
-          ((and ivy--directory
-                (or
-                 (and
-                  (not (equal ivy-text ""))
-                  (ignore-errors
-                    (file-directory-p
-                     (setq dir
-                           (file-name-as-directory
-                            (expand-file-name
-                             ivy-text ivy--directory))))))
-                 (and
-                  (not (string= ivy--current "./"))
-                  (cl-plusp ivy--length)
-                  (ignore-errors
-                    (file-directory-p
-                     (setq dir (file-name-as-directory
-                                (expand-file-name
-                                 ivy--current ivy--directory))))))))
-           (ivy--cd dir)
-           (ivy--exhibit))
+          (ivy--directory
+           (cond
+             ((equal ivy-text "/sudo::")
+              (setq dir (concat ivy-text ivy--directory))
+              (ivy--cd dir)
+              (ivy--exhibit))
+             ((or
+               (and
+                (not (equal ivy-text ""))
+                (ignore-errors
+                  (file-directory-p
+                   (setq dir
+                         (file-name-as-directory
+                          (expand-file-name
+                           ivy-text ivy--directory))))))
+               (and
+                (not (string= ivy--current "./"))
+                (cl-plusp ivy--length)
+                (ignore-errors
+                  (file-directory-p
+                   (setq dir (file-name-as-directory
+                              (expand-file-name
+                               ivy--current ivy--directory)))))))
+              (ivy--cd dir)
+              (ivy--exhibit))
+             ((or (and (equal ivy--directory "/")
+                       (string-match "\\`[^/]+:.*:.*\\'" ivy-text))
+                  (string-match "\\`/[^/]+:.*:.*\\'" ivy-text))
+              (ivy-done))
+             ((or (and (equal ivy--directory "/")
+                       (cond ((string-match
+                               "\\`\\([^/]+?\\):\\(?:\\(.*\\)@\\)?\\(.*\\)\\'"
+                               ivy-text))
+                             ((string-match
+                               "\\`\\([^/]+?\\):\\(?:\\(.*\\)@\\)?\\(.*\\)\\'"
+                               ivy--current)
+                              (setq ivy-text ivy--current))))
+                  (string-match
+                   "\\`/\\([^/]+?\\):\\(?:\\(.*\\)@\\)?\\(.*\\)\\'"
+                   ivy-text))
+              (let ((method (match-string 1 ivy-text))
+                    (user (match-string 2 ivy-text))
+                    (rest (match-string 3 ivy-text))
+                    res)
+                (require 'tramp)
+                (dolist (x (tramp-get-completion-function method))
+                  (setq res (append res (funcall (car x) (cadr x)))))
+                (setq res (delq nil res))
+                (when user
+                  (dolist (x res)
+                    (setcar x user)))
+                (setq res (cl-delete-duplicates res :test #'equal))
+                (let* ((old-ivy-last ivy-last)
+                       (enable-recursive-minibuffers t)
+                       (host (ivy-read "Find File: "
+                                       (mapcar #'ivy-build-tramp-name res)
+                                       :initial-input rest)))
+                  (setq ivy-last old-ivy-last)
+                  (when host
+                    (setq ivy--directory "/")
+                    (ivy--cd (concat "/" method ":" host ":"))))))
+             (t
+              (ivy-done))))
           ((eq (ivy-state-collection ivy-last) 'Info-read-node-name-1)
            (if (or (equal ivy--current "(./)")
                    (equal ivy--current "(../)"))
@@ -428,44 +466,6 @@ When ARG is t, exit with current text, ignoring the 
candidates."
                                      (expand-file-name x ivy--directory)
                                      "Top"))))
              (ivy-done)))
-          ((and ivy--directory
-                (or (and (equal ivy--directory "/")
-                         (string-match "\\`[^/]+:.*:.*\\'" ivy-text))
-                    (string-match "\\`/[^/]+:.*:.*\\'" ivy-text)))
-           (ivy-done))
-          ((and ivy--directory
-                (or (and (equal ivy--directory "/")
-                         (cond ((string-match
-                                 
"\\`\\([^/]+?\\):\\(?:\\(.*\\)@\\)?\\(.*\\)\\'"
-                                 ivy-text))
-                               ((string-match
-                                 
"\\`\\([^/]+?\\):\\(?:\\(.*\\)@\\)?\\(.*\\)\\'"
-                                 ivy--current)
-                                (setq ivy-text ivy--current))))
-                    (string-match
-                     "\\`/\\([^/]+?\\):\\(?:\\(.*\\)@\\)?\\(.*\\)\\'"
-                     ivy-text)))
-           (let ((method (match-string 1 ivy-text))
-                 (user (match-string 2 ivy-text))
-                 (rest (match-string 3 ivy-text))
-                 res)
-             (require 'tramp)
-             (dolist (x (tramp-get-completion-function method))
-               (setq res (append res (funcall (car x) (cadr x)))))
-             (setq res (delq nil res))
-             (when user
-               (dolist (x res)
-                 (setcar x user)))
-             (setq res (cl-delete-duplicates res :test #'equal))
-             (let* ((old-ivy-last ivy-last)
-                    (enable-recursive-minibuffers t)
-                    (host (ivy-read "Find File: "
-                                    (mapcar #'ivy-build-tramp-name res)
-                                    :initial-input rest)))
-               (setq ivy-last old-ivy-last)
-               (when host
-                 (setq ivy--directory "/")
-                 (ivy--cd (concat "/" method ":" host ":"))))))
           (t
            (ivy-done)))))
 



reply via email to

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