branch: master
commit 874632ee7a4e97b98dd918f6572f640e6664fdc0
Author: Oleh Krehel <[email protected]>
Commit: Oleh Krehel <[email protected]>
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))