emacs: tree: use tag-format-tags
authorMark Walters <markwalters1009@gmail.com>
Sat, 11 Jan 2014 21:49:52 +0000 (21:49 +0000)
committerDavid Bremner <david@tethera.net>
Sat, 18 Jan 2014 18:41:50 +0000 (14:41 -0400)
Previously tree did not use tag-format-tags: since tree wants to
distinguish matching messages from non-matching messages it is not a
perfect fit.

However, in preparation for allowing tag-changes to be shown (i.e.,
added or deleted tags to be indicated) it is convenient to make all
places displaying tags call the same routines.

We modify notmuch-tag-format-tags slightly so that it can take and
argument for the default characteristics of the face before the
special tag features are applied.

This also means that things like the star symbol for flagged messages
all work in tree.

emacs/notmuch-tag.el
emacs/notmuch-tree.el

index b60f46c74d33ee5d70ec0feca703efb39fc60ecb..908e7ade6270bccce7fb6afbbb3e63eccc261465 100644 (file)
@@ -148,15 +148,16 @@ This can be used with `notmuch-tag-format-image-data'."
        (dolist (format (cdr formats) tag)
          (setq tag (eval format))))))))
 
-(defun notmuch-tag-format-tags (tags)
+(defun notmuch-tag-format-tags (tags &optional face)
   "Return a string representing formatted TAGS."
-  (notmuch-combine-face-text-property-string
-   (mapconcat #'identity
-             ;; nil indicated that the tag was deliberately hidden
-             (delq nil (mapcar #'notmuch-tag-format-tag tags))
-             " ")
-   'notmuch-tag-face
-   t))
+  (let ((face (or face 'notmuch-tag-face)))
+    (notmuch-combine-face-text-property-string
+     (mapconcat #'identity
+               ;; nil indicated that the tag was deliberately hidden
+               (delq nil (mapcar #'notmuch-tag-format-tag tags))
+               " ")
+     face
+     t)))
 
 (defcustom notmuch-before-tag-hook nil
   "Hooks that are run before tags of a message are modified.
index 16f28629327131a0654cf6e79b89a2ce752c0e49..4f2ac028793485d72bff372593432fff5ffcf3f5 100644 (file)
@@ -704,10 +704,7 @@ unchanged ADDRESS if parsing fails."
            (face (if match
                      'notmuch-tree-match-tag-face
                    'notmuch-tree-no-match-tag-face)))
-       (propertize (format format-string
-                           (mapconcat #'identity tags " "))
-                   'face face))))))
-
+       (format format-string (notmuch-tag-format-tags tags face)))))))
 
 (defun notmuch-tree-format-field-list (field-list msg)
   "Format fields of MSG according to FIELD-LIST and return string"