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