aboutsummaryrefslogtreecommitdiff
path: root/emacs/notmuch.el
diff options
context:
space:
mode:
authorDavid Edmondson <dme@dme.org>2021-02-21 15:19:01 +0000
committerDavid Bremner <david@tethera.net>2021-09-08 22:59:48 -0300
commit4f4ec48df25c8d2963e7124d2781b13e5a7f6a78 (patch)
tree0e56b5d9ab78e7add0ced059f94e9936fa2ed0a3 /emacs/notmuch.el
parent071fb57a35fa330785f75c26734133732560414e (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.
Diffstat (limited to 'emacs/notmuch.el')
-rw-r--r--emacs/notmuch.el2
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)))