Improve ivy-switch-buffer transformer

- Highlights remote/tramp files with ivy-remote face
- Highlights non-file-visiting buffers with ivy-subdir face
- Highlight modified buffers with ivy-modified-buffer face
- Disable built-in ivy-switch-buffer transformer (redundant with our own
  transformer)
This commit is contained in:
Henrik Lissner 2019-04-10 19:22:29 -04:00
parent 5e8687cd45
commit 3ef2abfb22
No known key found for this signature in database
GPG Key ID: 5F6C0EA160557395
2 changed files with 16 additions and 3 deletions

View File

@ -19,9 +19,18 @@
Buffers that are considered unreal (see `doom-real-buffer-p') are dimmed with
`+ivy-buffer-unreal-face'."
(if (doom-real-buffer-p (get-buffer candidate))
candidate
(propertize candidate 'face +ivy-buffer-unreal-face)))
(let ((b (get-buffer candidate)))
(cond ((ignore-errors
(file-remote-p
(buffer-local-value 'default-directory b)))
(ivy-append-face candidate 'ivy-remote))
((doom-unreal-buffer-p b)
(ivy-append-face candidate +ivy-buffer-unreal-face))
((not (buffer-file-name b))
(ivy-append-face candidate 'ivy-subdir))
((buffer-modified-p b)
(ivy-append-face candidate 'ivy-modified-buffer))
(candidate))))
;;;###autoload
(defun +ivy-rich-buffer-icon (candidate)

View File

@ -106,6 +106,10 @@ immediately runs it on the current candidate (ending the ivy session)."
((all-the-icons-icon-for-file (:width 2 :align right))
(ivy-rich-candidate)))))))
;; Remove built-in coloring of buffer list; we do our own
(setq ivy-switch-buffer-faces-alist nil)
(ivy-set-display-transformer 'internal-complete-buffer nil)
;; Highlight buffers differently based on whether they're in the same project
;; as the current project or not.
(let* ((plist (plist-get ivy-rich-display-transformers-list 'ivy-switch-buffer))