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

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

[elpa] master 874632e 098/348: Name bookmarked directories using the boo


From: Oleh Krehel
Subject: [elpa] master 874632e 098/348: Name bookmarked directories using the bookmark name
Date: Sat, 8 Apr 2017 11:03:36 -0400 (EDT)

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

    Name bookmarked directories using the bookmark name
    
    * ivy.el (ivy--virtual-buffers): Update.
    
    Previously, "foo/src" and "bar/src" would be both named "src" when
    (eq ivy-virtual-abbreviate 'name).
    
    Now, they're named after their bookmarks, e.g. "source of foo" or "bar
    project".
---
 ivy.el | 41 ++++++++++++++++++++++++-----------------
 1 file changed, 24 insertions(+), 17 deletions(-)

diff --git a/ivy.el b/ivy.el
index c09ed4a..4a02fcd 100644
--- a/ivy.el
+++ b/ivy.el
@@ -2687,25 +2687,32 @@ CANDS is a list of strings."
     (recentf-mode 1))
   (let ((bookmarks (and (boundp 'bookmark-alist)
                         bookmark-alist))
-        virtual-buffers name)
+        virtual-buffers)
     (dolist (head (append
                    recentf-list
-                   (delete "   - no file -"
-                           (delq nil (mapcar (lambda (bookmark)
-                                               (cdr (assoc 'filename 
bookmark)))
-                                             bookmarks)))))
-      (setq name
-            (if (eq ivy-virtual-abbreviate 'name)
-                (file-name-nondirectory head)
-              (expand-file-name head)))
-      (when (equal name "")
-        (setq name (file-name-nondirectory (directory-file-name head))))
-      (when (equal name "")
-        (setq name head))
-      (and (not (equal name ""))
-           (null (get-file-buffer head))
-           (not (assoc name virtual-buffers))
-           (push (cons name head) virtual-buffers)))
+                   (delq nil (mapcar (lambda (bookmark)
+                                       (let (file)
+                                         (when (setq file (assoc 'filename 
bookmark))
+                                           (unless (string= (cdr file) "   - 
no file -")
+                                             (cons (car bookmark)
+                                                   (cdr file))))))
+                                     bookmarks))))
+      (let ((file-name (if (stringp head)
+                           head
+                         (cdr head)))
+            name)
+        (setq name
+              (if (eq ivy-virtual-abbreviate 'name)
+                  (file-name-nondirectory file-name)
+                (expand-file-name file-name)))
+        (when (equal name "")
+          (if (consp head)
+              (setq name (car head))
+            (setq name (file-name-nondirectory (directory-file-name 
file-name)))))
+        (and (not (equal name ""))
+             (null (get-file-buffer file-name))
+             (not (assoc name virtual-buffers))
+             (push (cons name file-name) virtual-buffers))))
     (when virtual-buffers
       (dolist (comp virtual-buffers)
         (put-text-property 0 (length (car comp))



reply via email to

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