branch: externals/ivy-hydra
commit 5f430f4a5e44f67bf6f04ffd301f53ecfa7a631f
Author: Oleh Krehel <[email protected]>
Commit: Oleh Krehel <[email protected]>
ivy.el (ivy-switch-buffer-transformer): Fix for virtual buffers
---
ivy.el | 28 ++++++++++++++++------------
1 file changed, 16 insertions(+), 12 deletions(-)
diff --git a/ivy.el b/ivy.el
index 75d642a..7ce875c 100644
--- a/ivy.el
+++ b/ivy.el
@@ -4570,18 +4570,22 @@ Skip buffers that match `ivy-ignore-buffers'."
(defun ivy-switch-buffer-transformer (str)
"Transform candidate STR when switching buffers."
- (let* ((buf (get-buffer str))
- (dir (buffer-local-value 'default-directory buf))
- (mode (buffer-local-value 'major-mode buf)))
- (cond
- ((and dir (ignore-errors (file-remote-p dir)))
- (ivy-append-face str 'ivy-remote))
- ((not (verify-visited-file-modtime buf))
- (ivy-append-face str 'ivy-modified-outside-buffer))
- ((buffer-modified-p buf)
- (ivy-append-face str 'ivy-modified-buffer))
- (t
- (ivy-append-face str (cdr (assq mode
ivy-switch-buffer-faces-alist)))))))
+ (let ((buf (get-buffer str)))
+ (if buf
+ (let ((dir (buffer-local-value 'default-directory buf))
+ (mode (buffer-local-value 'major-mode buf)))
+ (cond
+ ((and dir (ignore-errors (setq dir (file-remote-p dir))))
+ (concat
+ (ivy-append-face str 'ivy-remote)
+ " " dir))
+ ((not (verify-visited-file-modtime buf))
+ (ivy-append-face str 'ivy-modified-outside-buffer))
+ ((buffer-modified-p buf)
+ (ivy-append-face str 'ivy-modified-buffer))
+ (t
+ (ivy-append-face str (cdr (assq mode
ivy-switch-buffer-faces-alist))))))
+ str)))
(defun ivy-switch-buffer-occur (cands)
"Occur function for `ivy-switch-buffer' using `ibuffer'.