branch: master commit a8173420e5dd40e9cb558cdad74f45a7cc499e50 Author: Oleh Krehel <ohwoeo...@gmail.com> Commit: Oleh Krehel <ohwoeo...@gmail.com>
ivy.el: Improve the highlighting in the minibuffer * ivy.el (ivy--add-face): Use `add-face-text-property' if it's available. You need to upgrade to Emacs 24.4 to get this feature. (ivy-completions): Use `ivy--add-face'. --- ivy.el | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-) diff --git a/ivy.el b/ivy.el index a6b4b66..45a8700 100644 --- a/ivy.el +++ b/ivy.el @@ -218,6 +218,16 @@ Should be run via minibuffer `post-command-hook'." (defvar ivy--old-cands nil "Store the candidates matched by `ivy--old-re'.") +(defun ivy--add-face (str face) + "Propertize STR with FACE. +A better function `add-face-text-property' is used if it's available. +Otherwise, `propertize'." + (if (fboundp 'add-face-text-property) + (progn + (add-face-text-property 0 (length str) face t str) + str) + (propertize str 'face face))) + (defun ivy-completions (name candidates) "Return as text the current completions. NAME is a string of words separated by spaces that is used to @@ -252,7 +262,7 @@ CANDIDATES is a list of strings." (setq ivy--current (copy-sequence (nth index cands))) (setf (nth index cands) - (propertize ivy--current 'face 'ivy-current-match)) + (ivy--add-face ivy--current 'ivy-current-match)) (concat "\n" (mapconcat #'identity cands "\n")))))) (provide 'ivy)