mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
contrib: pick: make the tree graphics a proper part of the format
Previously the box graphics in the pick view were always attached to the subject. Make them a field in their own right. We use the recursive insert to change the default notmuch-pick-result-format so that the user view does not change. (The subject touches the tree box graphics but the next column (tags) is still vertically aligned.)
This commit is contained in:
parent
6ae591911c
commit
81ee7855b5
1 changed files with 37 additions and 12 deletions
|
@ -65,13 +65,18 @@
|
||||||
(defcustom notmuch-pick-result-format
|
(defcustom notmuch-pick-result-format
|
||||||
`(("date" . "%12s ")
|
`(("date" . "%12s ")
|
||||||
("authors" . "%-20s")
|
("authors" . "%-20s")
|
||||||
("subject" . " %-54s ")
|
((("tree" . "%s")("subject" . "%s")) ." %-54s ")
|
||||||
("tags" . "(%s)"))
|
("tags" . "(%s)"))
|
||||||
"Result formatting for Pick. Supported fields are: date,
|
"Result formatting for Pick. Supported fields are: date,
|
||||||
authors, subject, tags Note: subject includes the tree
|
authors, subject, tree, tags. Tree means the thread tree
|
||||||
structure graphics, and the author string should not
|
box graphics. The field may also be a list in which case
|
||||||
contain whitespace (put it in the neighbouring fields
|
the formatting rules are applied recursively and then the
|
||||||
instead). For example:
|
output of all the fields in the list is inserted
|
||||||
|
according to format-string.
|
||||||
|
|
||||||
|
Note the author string should not contain
|
||||||
|
whitespace (put it in the neighbouring fields instead).
|
||||||
|
For example:
|
||||||
(setq notmuch-pick-result-format \(\(\"authors\" . \"%-40s\"\)
|
(setq notmuch-pick-result-format \(\(\"authors\" . \"%-40s\"\)
|
||||||
\(\"subject\" . \"%s\"\)\)\)"
|
\(\"subject\" . \"%s\"\)\)\)"
|
||||||
:type '(alist :key-type (string) :value-type (string))
|
:type '(alist :key-type (string) :value-type (string))
|
||||||
|
@ -103,6 +108,12 @@
|
||||||
:group 'notmuch-pick
|
:group 'notmuch-pick
|
||||||
:group 'notmuch-faces)
|
:group 'notmuch-faces)
|
||||||
|
|
||||||
|
(defface notmuch-pick-match-tree-face
|
||||||
|
'((t :inherit default))
|
||||||
|
"Face used in pick mode for the thread tree block graphics in messages matching the query."
|
||||||
|
:group 'notmuch-pick
|
||||||
|
:group 'notmuch-faces)
|
||||||
|
|
||||||
(defface notmuch-pick-match-tag-face
|
(defface notmuch-pick-match-tag-face
|
||||||
'((((class color)
|
'((((class color)
|
||||||
(background dark))
|
(background dark))
|
||||||
|
@ -129,6 +140,12 @@
|
||||||
:group 'notmuch-pick
|
:group 'notmuch-pick
|
||||||
:group 'notmuch-faces)
|
:group 'notmuch-faces)
|
||||||
|
|
||||||
|
(defface notmuch-pick-no-match-tree-face
|
||||||
|
'((t (:foreground "gray")))
|
||||||
|
"Face used in pick mode for the thread tree block graphics in messages matching the query."
|
||||||
|
:group 'notmuch-pick
|
||||||
|
:group 'notmuch-faces)
|
||||||
|
|
||||||
(defface notmuch-pick-no-match-author-face
|
(defface notmuch-pick-no-match-author-face
|
||||||
'((t (:foreground "gray")))
|
'((t (:foreground "gray")))
|
||||||
"Face used in pick mode for the date in messages matching the query."
|
"Face used in pick mode for the date in messages matching the query."
|
||||||
|
@ -687,19 +704,27 @@ unchanged ADDRESS if parsing fails."
|
||||||
(propertize (format format-string (plist-get msg :date_relative))
|
(propertize (format format-string (plist-get msg :date_relative))
|
||||||
'face face))))
|
'face face))))
|
||||||
|
|
||||||
((string-equal field "subject")
|
((string-equal field "tree")
|
||||||
(let ((tree-status (plist-get msg :tree-status))
|
(let ((tree-status (plist-get msg :tree-status))
|
||||||
(bare-subject (notmuch-show-strip-re (plist-get headers :Subject)))
|
(face (if match
|
||||||
|
'notmuch-pick-match-tree-face
|
||||||
|
'notmuch-pick-no-match-tree-face)))
|
||||||
|
|
||||||
|
(setq formatted-field
|
||||||
|
(propertize (format format-string
|
||||||
|
(mapconcat #'identity (reverse tree-status) ""))
|
||||||
|
'face face))))
|
||||||
|
|
||||||
|
((string-equal field "subject")
|
||||||
|
(let ((bare-subject (notmuch-show-strip-re (plist-get headers :Subject)))
|
||||||
(face (if match
|
(face (if match
|
||||||
'notmuch-pick-match-subject-face
|
'notmuch-pick-match-subject-face
|
||||||
'notmuch-pick-no-match-subject-face)))
|
'notmuch-pick-no-match-subject-face)))
|
||||||
(setq formatted-field
|
(setq formatted-field
|
||||||
(propertize (format format-string
|
(propertize (format format-string
|
||||||
(concat
|
(if (string= notmuch-pick-previous-subject bare-subject)
|
||||||
(mapconcat #'identity (reverse tree-status) "")
|
" ..."
|
||||||
(if (string= notmuch-pick-previous-subject bare-subject)
|
bare-subject))
|
||||||
" ..."
|
|
||||||
bare-subject)))
|
|
||||||
'face face))
|
'face face))
|
||||||
(setq notmuch-pick-previous-subject bare-subject)))
|
(setq notmuch-pick-previous-subject bare-subject)))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue