emacs: Allow control over faces for search mode columns.
authorDavid Edmondson <dme@dme.org>
Thu, 29 Apr 2010 07:32:31 +0000 (08:32 +0100)
committerCarl Worth <cworth@cworth.org>
Thu, 3 Jun 2010 23:55:27 +0000 (16:55 -0700)
Add face declarations for the date, count, matching author and subject
columns in search mode and apply those faces when building the search
mode display.

Approved-by: Jameson Rollins <jrollins@finestructure.net>
emacs/notmuch.el

index 21c08c121ccb980c50733b47daf84240643ad6cd..0da7ab982fa32981a9a410e4609be5412d10cb17 100644 (file)
@@ -285,27 +285,48 @@ For a mouse binding, return nil."
  "Face for the single-line message summary in notmuch-show-mode."
  :group 'notmuch)
 
-(defface notmuch-tag-face
+(defface notmuch-search-date
+  '((t :inherit default))
+  "Face used in search mode for dates."
+  :group 'notmuch)
+
+(defface notmuch-search-count
+  '((t :inherit default))
+  "Face used in search mode for the count matching the query."
+  :group 'notmuch)
+
+(defface notmuch-search-subject
+  '((t :inherit default))
+  "Face used in search mode for subjects."
+  :group 'notmuch)
+
+(defface notmuch-search-matching-authors
+  '((t :inherit default))
+  "Face used in search mode for authors matching the query."
+  :group 'notmuch)
+
+(defface notmuch-search-non-matching-authors
   '((((class color)
       (background dark))
-     (:foreground "OliveDrab1"))
+     (:foreground "grey30"))
     (((class color)
       (background light))
-     (:foreground "navy blue" :bold t))
+     (:foreground "grey60"))
     (t
-     (:bold t)))
-  "Notmuch search mode face used to highligh tags."
+     (:italic t)))
+  "Face used in search mode for authors not matching the query."
   :group 'notmuch)
 
-(defface notmuch-search-non-matching-authors
+(defface notmuch-tag-face
   '((((class color)
       (background dark))
-     (:foreground "grey30"))
+     (:foreground "OliveDrab1"))
     (((class color)
       (background light))
-     (:foreground "grey60"))
-    (t (:italic t)))
-  "Face used in search mode for authors not matching the query."
+     (:foreground "navy blue" :bold t))
+    (t
+     (:bold t)))
+  "Face used in search mode face for tags."
   :group 'notmuch)
 
 ;;;###autoload
@@ -599,21 +620,27 @@ matching will be applied."
            ;; `notmuch-search-process-filter'.
            (save-match-data
              (if (string-match "\\(.*\\)|\\(..*\\)" truncated-string)
-                 (concat (match-string 1 truncated-string) ","
+                 (concat (propertize (concat (match-string 1 truncated-string) ",")
+                                     'face 'notmuch-search-matching-authors)
                          (propertize (match-string 2 truncated-string)
                                      'face 'notmuch-search-non-matching-authors))
-               truncated-string)))))
+               (propertize truncated-string 'face 'notmuch-search-matching-authors))))))
 
 (defun notmuch-search-insert-field (field date count authors subject tags)
   (cond
    ((string-equal field "date")
-    (insert (format (cdr (assoc field notmuch-search-result-format)) date)))
+    (insert (propertize (format (cdr (assoc field notmuch-search-result-format)) date)
+                       'face 'notmuch-search-date)))
    ((string-equal field "count")
-    (insert (format (cdr (assoc field notmuch-search-result-format)) count)))
+    (insert (propertize (format (cdr (assoc field notmuch-search-result-format)) count)
+                       'face 'notmuch-search-count)))
+   ((string-equal field "subject")
+    (insert (propertize (format (cdr (assoc field notmuch-search-result-format)) subject)
+                       'face 'notmuch-search-subject)))
+
    ((string-equal field "authors")
     (notmuch-search-insert-authors (cdr (assoc field notmuch-search-result-format)) authors))
-   ((string-equal field "subject")
-    (insert (format (cdr (assoc field notmuch-search-result-format)) subject)))
+
    ((string-equal field "tags")
     (insert (concat "(" (propertize tags 'font-lock-face 'notmuch-tag-face) ")")))))