This uses the recent functionality to show the tag changes in the search buffer. Currently this is only used to show changes the search buffer makes itself: i.e., it does not make display any changes reflecting tagging done by other notmuch-buffers. --- emacs/notmuch.el | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 1436e5a..f0ea5d4 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -753,14 +753,20 @@ non-authors is found, assume that all of the authors match." format-string (notmuch-sanitize (plist-get result :authors)))) ((string-equal field "tags") - (let ((tags (plist-get result :tags))) - (insert (format format-string (notmuch-tag-format-tags tags tags))))))) + (let ((tags (plist-get result :tags)) + (orig-tags (plist-get result :orig-tags))) + (insert (format format-string (notmuch-tag-format-tags tags orig-tags))))))) (defun notmuch-search-show-result (result &optional pos) "Insert RESULT at POS or the end of the buffer if POS is null." ;; Ignore excluded matches (unless (= (plist-get result :matched) 0) - (let ((beg (or pos (point-max)))) + (let ((beg (or pos (point-max))) + ;; If we are inserting the result for the first time POS + ;; will be nil and we should set orig-tags. + (result (if pos + result + (plist-put result :orig-tags (plist-get result :tags))))) (save-excursion (goto-char beg) (dolist (spec notmuch-search-result-format) -- 1.7.9.1