mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-23 11:28:13 +01:00
contrib: pick: move the insertion of fields up a level
This moves the actual insertion of message fields up from the field formatting function into the message insertion function. This will be useful in the next patch as we can apply further formatting to the insertion string before inserting.
This commit is contained in:
parent
44bfad08f1
commit
6c8116c05b
1 changed files with 24 additions and 17 deletions
|
@ -669,16 +669,19 @@ unchanged ADDRESS if parsing fails."
|
||||||
;; If we have a name return that otherwise return the address.
|
;; If we have a name return that otherwise return the address.
|
||||||
(or p-name p-address)))
|
(or p-name p-address)))
|
||||||
|
|
||||||
(defun notmuch-pick-insert-field (field format-string msg)
|
(defun notmuch-pick-format-field (field format-string msg)
|
||||||
|
"Format a FIELD of MSG according to FORMAT-STRING and return string"
|
||||||
(let* ((headers (plist-get msg :headers))
|
(let* ((headers (plist-get msg :headers))
|
||||||
(match (plist-get msg :match)))
|
(match (plist-get msg :match))
|
||||||
|
formatted-field)
|
||||||
(cond
|
(cond
|
||||||
((string-equal field "date")
|
((string-equal field "date")
|
||||||
(let ((face (if match
|
(let ((face (if match
|
||||||
'notmuch-pick-match-date-face
|
'notmuch-pick-match-date-face
|
||||||
'notmuch-pick-no-match-date-face)))
|
'notmuch-pick-no-match-date-face)))
|
||||||
(insert (propertize (format format-string (plist-get msg :date_relative))
|
(setq formatted-field
|
||||||
'face face))))
|
(propertize (format format-string (plist-get msg :date_relative))
|
||||||
|
'face face))))
|
||||||
|
|
||||||
((string-equal field "subject")
|
((string-equal field "subject")
|
||||||
(let ((tree-status (plist-get msg :tree-status))
|
(let ((tree-status (plist-get msg :tree-status))
|
||||||
|
@ -686,13 +689,14 @@ unchanged ADDRESS if parsing fails."
|
||||||
(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)))
|
||||||
(insert (propertize (format format-string
|
(setq formatted-field
|
||||||
(concat
|
(propertize (format format-string
|
||||||
(mapconcat #'identity (reverse tree-status) "")
|
(concat
|
||||||
(if (string= notmuch-pick-previous-subject bare-subject)
|
(mapconcat #'identity (reverse tree-status) "")
|
||||||
" ..."
|
(if (string= notmuch-pick-previous-subject bare-subject)
|
||||||
bare-subject)))
|
" ..."
|
||||||
'face face))
|
bare-subject)))
|
||||||
|
'face face))
|
||||||
(setq notmuch-pick-previous-subject bare-subject)))
|
(setq notmuch-pick-previous-subject bare-subject)))
|
||||||
|
|
||||||
((string-equal field "authors")
|
((string-equal field "authors")
|
||||||
|
@ -703,17 +707,20 @@ unchanged ADDRESS if parsing fails."
|
||||||
'notmuch-pick-no-match-author-face)))
|
'notmuch-pick-no-match-author-face)))
|
||||||
(when (> (length author) len)
|
(when (> (length author) len)
|
||||||
(setq author (substring author 0 len)))
|
(setq author (substring author 0 len)))
|
||||||
(insert (propertize (format format-string author)
|
(setq formatted-field
|
||||||
'face face))))
|
(propertize (format format-string author)
|
||||||
|
'face face))))
|
||||||
|
|
||||||
((string-equal field "tags")
|
((string-equal field "tags")
|
||||||
(let ((tags (plist-get msg :tags))
|
(let ((tags (plist-get msg :tags))
|
||||||
(face (if match
|
(face (if match
|
||||||
'notmuch-pick-match-tag-face
|
'notmuch-pick-match-tag-face
|
||||||
'notmuch-pick-no-match-tag-face)))
|
'notmuch-pick-no-match-tag-face)))
|
||||||
(insert (propertize (format format-string
|
(setq formatted-field
|
||||||
(mapconcat #'identity tags ", "))
|
(propertize (format format-string
|
||||||
'face face)))))))
|
(mapconcat #'identity tags ", "))
|
||||||
|
'face face)))))
|
||||||
|
formatted-field))
|
||||||
|
|
||||||
(defun notmuch-pick-insert-msg (msg)
|
(defun notmuch-pick-insert-msg (msg)
|
||||||
"Insert the message MSG according to notmuch-pick-result-format"
|
"Insert the message MSG according to notmuch-pick-result-format"
|
||||||
|
@ -721,7 +728,7 @@ unchanged ADDRESS if parsing fails."
|
||||||
;; by the insert-field calls.
|
;; by the insert-field calls.
|
||||||
(let ((previous-subject notmuch-pick-previous-subject))
|
(let ((previous-subject notmuch-pick-previous-subject))
|
||||||
(dolist (spec notmuch-pick-result-format)
|
(dolist (spec notmuch-pick-result-format)
|
||||||
(notmuch-pick-insert-field (car spec) (cdr spec) msg))
|
(insert (notmuch-pick-format-field (car spec) (cdr spec) msg)))
|
||||||
(notmuch-pick-set-message-properties msg)
|
(notmuch-pick-set-message-properties msg)
|
||||||
(notmuch-pick-set-prop :previous-subject previous-subject)
|
(notmuch-pick-set-prop :previous-subject previous-subject)
|
||||||
(insert "\n")))
|
(insert "\n")))
|
||||||
|
|
Loading…
Reference in a new issue