[PATCH] emacs: Allow control over faces for search mode columns.

David Edmondson dme at dme.org
Thu Apr 29 00:32:31 PDT 2010


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.
---

This is intended to support 'fruit salad' mode: 
   http://dme.org/images/2010-04-29-081213_1590x1197_scrot.png

 emacs/notmuch.el |   59 +++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 43 insertions(+), 16 deletions(-)

diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index d36a92d..7c9c028 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -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) ")")))))
 
-- 
1.7.0



More information about the notmuch mailing list