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

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

[elpa] master f60d10e 075/167: "C-x C-f M-n" can call ffap-url-fetcher w


From: Oleh Krehel
Subject: [elpa] master f60d10e 075/167: "C-x C-f M-n" can call ffap-url-fetcher when at URL
Date: Tue, 08 Dec 2015 10:49:59 +0000

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

    "C-x C-f M-n" can call ffap-url-fetcher when at URL
    
    * ivy.el (ivy--cd-maybe): Check if the input is a valid URL.
    If so, exit immediately by calling (funcall ffap-url-fetcher url).
    Otherwise, do the usual `ivy--cd' thing.
---
 ivy.el |   26 ++++++++++++++++++--------
 1 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/ivy.el b/ivy.el
index af9f389..6a900fb 100644
--- a/ivy.el
+++ b/ivy.el
@@ -693,16 +693,26 @@ Call the permanent action if possible."
 (defun ivy--cd-maybe ()
   "Check if the current input points to a different directory.
 If so, move to that directory, while keeping only the file name."
+  (require 'ffap)
   (when ivy--directory
-    (let* ((input (expand-file-name (ivy--input)))
-           (file (file-name-nondirectory input))
-           (dir (expand-file-name (file-name-directory input))))
-      (if (string= dir ivy--directory)
+    (let ((input (ivy--input))
+          url)
+      (if (setq url (ffap-url-p input))
           (progn
-            (delete-minibuffer-contents)
-            (insert file))
-        (ivy--cd dir)
-        (insert file)))))
+            (ivy-set-action
+             (lambda (_)
+               (funcall ffap-url-fetcher url)))
+            (setq ivy-exit 'done)
+            (exit-minibuffer))
+        (setq input (expand-file-name input))
+        (let ((file (file-name-nondirectory input))
+              (dir (expand-file-name (file-name-directory input))))
+          (if (string= dir ivy--directory)
+              (progn
+                (delete-minibuffer-contents)
+                (insert file))
+            (ivy--cd dir)
+            (insert file)))))))
 
 (defun ivy--maybe-scroll-history ()
   "If the selected history element has an index, scroll there."



reply via email to

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