diff options
| author | David Edmondson <dme@dme.org> | 2021-02-21 15:19:01 +0000 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2021-09-08 22:59:48 -0300 |
| commit | 4f4ec48df25c8d2963e7124d2781b13e5a7f6a78 (patch) | |
| tree | 0e56b5d9ab78e7add0ced059f94e9936fa2ed0a3 | |
| parent | 071fb57a35fa330785f75c26734133732560414e (diff) | |
emacs: Allow functions in notmuch-search-result-format
If the car of an element in notmuch-search-result-format is a
function, insert the result of calling the function into the buffer.
This allows a user to generate custom fields in the output of a search
result. For example, with:
(defun -notmuch-result-flags (format-string result)
(let ((tags-to-letters '(("flagged" . "!")
("unread" . "u")
("mine" . "m")
("sent" . "s")
("replied" . "r")))
(tags (plist-get result :tags)))
(format format-string
(mapconcat (lambda (t2l)
(if (member (car t2l) tags)
(cdr t2l)
" "))
tags-to-letters ""))))
(setq notmuch-search-result-format '((-notmuch-result-flags . "%s ")
("date" . "%12s ")
("count" . "%9s ")
("authors" . "%-30s ")
("subject" . "%s ")
("tags" . "(%s)")))
The first few characters on each line of the search result are used to
show information about some significant tags associated with the
thread.
| -rw-r--r-- | emacs/notmuch.el | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 6076a967..479b39f1 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -834,6 +834,8 @@ non-authors is found, assume that all of the authors match." (defun notmuch-search-insert-field (field format-string result) (pcase field + ((pred functionp) + (insert (funcall field format-string result))) ("date" (insert (propertize (format format-string (plist-get result :date_relative)) 'face 'notmuch-search-date))) |
