From 55cef18f95fb2b570927df1cb629ad72089e10de Mon Sep 17 00:00:00 2001 From: David Edmondson Date: Thu, 29 Apr 2010 08:32:31 +0100 Subject: [PATCH] emacs: Allow control over faces for search mode columns. 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 --- emacs/notmuch.el | 61 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 44 insertions(+), 17 deletions(-) diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 21c08c12..0da7ab98 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -285,16 +285,24 @@ For a mouse binding, return nil." "Face for the single-line message summary in notmuch-show-mode." :group 'notmuch) -(defface notmuch-tag-face - '((((class color) - (background dark)) - (:foreground "OliveDrab1")) - (((class color) - (background light)) - (:foreground "navy blue" :bold t)) - (t - (:bold t))) - "Notmuch search mode face used to highligh tags." +(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 @@ -304,10 +312,23 @@ For a mouse binding, return nil." (((class color) (background light)) (:foreground "grey60")) - (t (:italic t))) + (t + (:italic t))) "Face used in search mode for authors not matching the query." :group 'notmuch) +(defface notmuch-tag-face + '((((class color) + (background dark)) + (:foreground "OliveDrab1")) + (((class color) + (background light)) + (:foreground "navy blue" :bold t)) + (t + (:bold t))) + "Face used in search mode face for tags." + :group 'notmuch) + ;;;###autoload (defun notmuch-search-mode () "Major mode displaying results of a notmuch search. @@ -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) ")")))))