branch: master
commit 1e935469a225b04203d41f5baba221fecba6e445
Author: Oleh Krehel <[email protected]>
Commit: Oleh Krehel <[email protected]>

    ivy.el (ivy-switch-buffer-transformer): Compose face
    
    Fixes #992
---
 counsel.el | 4 ++--
 ivy.el     | 8 +++++++-
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/counsel.el b/counsel.el
index c2a5917..302c735 100644
--- a/counsel.el
+++ b/counsel.el
@@ -448,7 +448,7 @@ Update the minibuffer with the amount of lines collected 
every
 (defun counsel-describe-variable-transformer (var)
   "Propertize VAR if it's a custom variable."
   (if (custom-variable-p (intern var))
-      (propertize var 'face 'ivy-highlight-face)
+      (ivy-append-face var 'ivy-highlight-face)
     var))
 
 (ivy-set-display-transformer
@@ -484,7 +484,7 @@ Variables declared using `defcustom' are highlighted 
according to
 (defun counsel-describe-function-transformer (function-name)
   "Propertize FUNCTION-NAME if it's an interactive function."
   (if (commandp (intern function-name))
-      (propertize function-name 'face 'ivy-highlight-face)
+      (ivy-append-face function-name 'ivy-highlight-face)
     function-name))
 
 (ivy-set-display-transformer
diff --git a/ivy.el b/ivy.el
index 62d837f..94e49c4 100644
--- a/ivy.el
+++ b/ivy.el
@@ -3323,12 +3323,18 @@ Skip buffers that match `ivy-ignore-buffers'."
 (ivy-set-display-transformer
  'internal-complete-buffer 'ivy-switch-buffer-transformer)
 
+(defun ivy-append-face (str face)
+  (let ((new (copy-sequence str)))
+    (font-lock-append-text-property
+     0 (length new) 'face face new)
+    new))
+
 (defun ivy-switch-buffer-transformer (str)
   (let ((b (get-buffer str)))
     (if (and b
              (buffer-file-name b)
              (buffer-modified-p b))
-        (propertize str 'face 'ivy-modified-buffer)
+        (ivy-append-face str 'ivy-modified-buffer)
       str)))
 
 (defun ivy-switch-buffer-occur ()

Reply via email to