mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
emacs: Display non-matching authors with a different face.
In search mode some messages don't match the search criteria. Show their authors names with a different face - generally darker than those that do match.
This commit is contained in:
parent
f6ce820a21
commit
106f9862d1
1 changed files with 29 additions and 7 deletions
|
@ -297,6 +297,17 @@ For a mouse binding, return nil."
|
||||||
"Notmuch search mode face used to highligh tags."
|
"Notmuch search mode face used to highligh tags."
|
||||||
:group 'notmuch)
|
: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
|
;;;###autoload
|
||||||
(defun notmuch-search-mode ()
|
(defun notmuch-search-mode ()
|
||||||
"Major mode displaying results of a notmuch search.
|
"Major mode displaying results of a notmuch search.
|
||||||
|
@ -576,6 +587,23 @@ matching will be applied."
|
||||||
(t
|
(t
|
||||||
(setq tags-faces (cdr tags-faces)))))))))
|
(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)
|
(defun notmuch-search-insert-field (field date count authors subject tags)
|
||||||
(cond
|
(cond
|
||||||
((string-equal field "date")
|
((string-equal field "date")
|
||||||
|
@ -583,13 +611,7 @@ matching will be applied."
|
||||||
((string-equal field "count")
|
((string-equal field "count")
|
||||||
(insert (format (cdr (assoc field notmuch-search-result-format)) count)))
|
(insert (format (cdr (assoc field notmuch-search-result-format)) count)))
|
||||||
((string-equal field "authors")
|
((string-equal field "authors")
|
||||||
(insert (let* ((format-string (cdr (assoc field notmuch-search-result-format)))
|
(notmuch-search-insert-authors (cdr (assoc field notmuch-search-result-format)) authors))
|
||||||
(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))))
|
|
||||||
((string-equal field "subject")
|
((string-equal field "subject")
|
||||||
(insert (format (cdr (assoc field notmuch-search-result-format)) subject)))
|
(insert (format (cdr (assoc field notmuch-search-result-format)) subject)))
|
||||||
((string-equal field "tags")
|
((string-equal field "tags")
|
||||||
|
|
Loading…
Reference in a new issue