Fixed ivy-rich and icons.

This commit is contained in:
tastytea 2019-08-07 23:53:22 +02:00
parent b94b9918db
commit 4ab38cb58b
1 changed files with 55 additions and 22 deletions

77
init.el
View File

@ -1,5 +1,5 @@
;;; init.el --- tastytea's Emacs init file.
;; Time-stamp: <2019-08-07T18:29:11+00:00>
;; Time-stamp: <2019-08-07T21:52:55+00:00>
;;; Commentary:
;; I am using this file with Emacs 26, but most of it will probably work with
@ -622,12 +622,12 @@ With argument, do this that many times."
(all-the-icons-ivy-setup)
)
;; Nicer interface for ivy.
;; More information in ivy mini-buffers.
(use-package ivy-rich
;; all-the-icons-ivy would override the ivy-rich switch-buffer improvements.
:after (all-the-icons-ivy counsel)
:config
;; Icons in switch-buffer.
(defun my/ivy-rich-switch-buffer-icon (candidate)
(defun ivy-rich-switch-buffer-icon (candidate)
(with-current-buffer
(get-buffer candidate)
(let ((icon (all-the-icons-icon-for-mode major-mode)))
@ -635,26 +635,59 @@ With argument, do this that many times."
(all-the-icons-icon-for-mode 'fundamental-mode)
icon))))
;; More detailed buffer view.
(setq ivy-rich-display-transformers-list
'(ivy-switch-buffer
(:columns
((my/ivy-rich-switch-buffer-icon :width 2)
(ivy-rich-candidate (:width 30))
(ivy-rich-switch-buffer-size (:width 7))
(ivy-rich-switch-buffer-indicators
(:width 4 :face error :align right))
(ivy-rich-switch-buffer-major-mode (:width 12 :face warning))
(ivy-rich-switch-buffer-project (:width 15 :face success))
(ivy-rich-switch-buffer-path
(:width (lambda (x)
(ivy-rich-switch-buffer-shorten-path
x (ivy-rich-minibuffer-width 0.3))))))
:predicate
(lambda (cand) (get-buffer cand)))))
(ivy-rich-mode 1)
(setcdr (assq t ivy-format-functions-alist) #'ivy-format-function-line)
:custom
;; It seems I have to copy this whole list to get icons in switch-buffer.
(ivy-rich-display-transformers-list
(quote
(ivy-switch-buffer
(:columns
((ivy-rich-switch-buffer-icon :width 2)
(ivy-rich-candidate
(:width 30))
(ivy-rich-switch-buffer-size
(:width 7))
(ivy-rich-switch-buffer-indicators
(:width 4 :face error :align right))
(ivy-rich-switch-buffer-major-mode
(:width 12 :face warning))
(ivy-rich-switch-buffer-project
(:width 15 :face success))
(ivy-rich-switch-buffer-path
(:width
(lambda
(x)
(ivy-rich-switch-buffer-shorten-path
x (ivy-rich-minibuffer-width 0.3))))))
:predicate
(lambda
(cand)
(get-buffer cand)))
counsel-M-x
(:columns
((counsel-M-x-transformer
(:width 40))
(ivy-rich-counsel-function-docstring
(:face font-lock-doc-face))))
counsel-describe-function
(:columns
((counsel-describe-function-transformer
(:width 40))
(ivy-rich-counsel-function-docstring
(:face font-lock-doc-face))))
counsel-describe-variable
(:columns
((counsel-describe-variable-transformer
(:width 40))
(ivy-rich-counsel-variable-docstring
(:face font-lock-doc-face))))
counsel-recentf
(:columns
((ivy-rich-candidate
(:width 0.8))
(ivy-rich-file-last-modified-time
(:face font-lock-comment-face)))))))
)
;; Better search.