X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=emacs%2Fnotmuch.el;h=21c08c121ccb980c50733b47daf84240643ad6cd;hb=965b3e6a8b0d71ab6af51e58631ccacc8749d23e;hp=488458af98bf516cd55a712ca45567caa49a11e7;hpb=0d8e26d0e3324e28424329dd79d4c44b849b27ce;p=notmuch diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 488458af..21c08c12 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -56,6 +56,7 @@ (require 'notmuch-mua) (require 'notmuch-hello) (require 'notmuch-maildir-fcc) +(require 'notmuch-message) (defcustom notmuch-search-result-format `(("date" . "%s ") @@ -296,6 +297,17 @@ For a mouse binding, return nil." "Notmuch search mode face used to highligh tags." :group 'notmuch) +(defface notmuch-search-non-matching-authors + '((((class color) + (background dark)) + (:foreground "grey30")) + (((class color) + (background light)) + (:foreground "grey60")) + (t (:italic t))) + "Face used in search mode for authors not matching the query." + :group 'notmuch) + ;;;###autoload (defun notmuch-search-mode () "Major mode displaying results of a notmuch search. @@ -426,7 +438,7 @@ and will also appear in a buffer named \"*Notmuch errors*\"." (let ((end (point))) (delete-region beg end) (insert (propertize (mapconcat 'identity tags " ") - 'font-lock-face 'notmuch-tag-face)))))) + 'face 'notmuch-tag-face)))))) (defun notmuch-search-get-tags () (save-excursion @@ -575,6 +587,23 @@ matching will be applied." (t (setq tags-faces (cdr tags-faces))))))))) +(defun notmuch-search-insert-authors (format-string authors) + (insert (let* ((formatted-sample (format format-string "")) + (formatted-authors (format format-string authors)) + (truncated-string + (if (> (length formatted-authors) + (length formatted-sample)) + (concat (substring authors 0 (- (length formatted-sample) 4)) "... ") + formatted-authors))) + ;; Need to save the match data to avoid interfering with + ;; `notmuch-search-process-filter'. + (save-match-data + (if (string-match "\\(.*\\)|\\(..*\\)" truncated-string) + (concat (match-string 1 truncated-string) "," + (propertize (match-string 2 truncated-string) + 'face 'notmuch-search-non-matching-authors)) + truncated-string))))) + (defun notmuch-search-insert-field (field date count authors subject tags) (cond ((string-equal field "date") @@ -582,13 +611,7 @@ matching will be applied." ((string-equal field "count") (insert (format (cdr (assoc field notmuch-search-result-format)) count))) ((string-equal field "authors") - (insert (let* ((format-string (cdr (assoc field notmuch-search-result-format))) - (formatted-sample (format format-string "")) - (formatted-authors (format format-string authors))) - (if (> (length formatted-authors) - (length formatted-sample)) - (concat (substring authors 0 (- (length formatted-sample) 4)) "... ") - formatted-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")