mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
emacs: search: use orig-tags in search
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.
This commit is contained in:
parent
a673d618d1
commit
af8c8c2b46
1 changed files with 25 additions and 16 deletions
|
@ -753,24 +753,33 @@ non-authors is found, assume that all of the authors match."
|
||||||
format-string (notmuch-sanitize (plist-get result :authors))))
|
format-string (notmuch-sanitize (plist-get result :authors))))
|
||||||
|
|
||||||
((string-equal field "tags")
|
((string-equal field "tags")
|
||||||
(let ((tags (plist-get result :tags)))
|
(let ((tags (plist-get result :tags))
|
||||||
(insert (format format-string (notmuch-tag-format-tags tags 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)
|
(defun notmuch-search-show-result (result pos)
|
||||||
"Insert RESULT at POS or the end of the buffer if POS is null."
|
"Insert RESULT at POS."
|
||||||
;; Ignore excluded matches
|
;; Ignore excluded matches
|
||||||
(unless (= (plist-get result :matched) 0)
|
(unless (= (plist-get result :matched) 0)
|
||||||
(let ((beg (or pos (point-max))))
|
(save-excursion
|
||||||
(save-excursion
|
(goto-char pos)
|
||||||
(goto-char beg)
|
(dolist (spec notmuch-search-result-format)
|
||||||
(dolist (spec notmuch-search-result-format)
|
(notmuch-search-insert-field (car spec) (cdr spec) result))
|
||||||
(notmuch-search-insert-field (car spec) (cdr spec) result))
|
(insert "\n")
|
||||||
(insert "\n")
|
(notmuch-search-color-line pos (point) (plist-get result :tags))
|
||||||
(notmuch-search-color-line beg (point) (plist-get result :tags))
|
(put-text-property pos (point) 'notmuch-search-result result))))
|
||||||
(put-text-property beg (point) 'notmuch-search-result result))
|
|
||||||
(when (string= (plist-get result :thread) notmuch-search-target-thread)
|
(defun notmuch-search-append-result (result)
|
||||||
(setq notmuch-search-target-thread "found")
|
"Insert RESULT at the end of the buffer.
|
||||||
(goto-char beg)))))
|
|
||||||
|
This is only called when a result is first inserted so it also
|
||||||
|
sets the :orig-tag property."
|
||||||
|
(let ((new-result (plist-put result :orig-tags (plist-get result :tags)))
|
||||||
|
(pos (point-max)))
|
||||||
|
(notmuch-search-show-result new-result pos)
|
||||||
|
(when (string= (plist-get result :thread) notmuch-search-target-thread)
|
||||||
|
(setq notmuch-search-target-thread "found")
|
||||||
|
(goto-char pos))))
|
||||||
|
|
||||||
(defun notmuch-search-process-filter (proc string)
|
(defun notmuch-search-process-filter (proc string)
|
||||||
"Process and filter the output of \"notmuch search\""
|
"Process and filter the output of \"notmuch search\""
|
||||||
|
@ -784,7 +793,7 @@ non-authors is found, assume that all of the authors match."
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(goto-char (point-max))
|
(goto-char (point-max))
|
||||||
(insert string))
|
(insert string))
|
||||||
(notmuch-sexp-parse-partial-list 'notmuch-search-show-result
|
(notmuch-sexp-parse-partial-list 'notmuch-search-append-result
|
||||||
results-buf)))))
|
results-buf)))))
|
||||||
|
|
||||||
(defun notmuch-search-tag-all (tag-changes)
|
(defun notmuch-search-tag-all (tag-changes)
|
||||||
|
|
Loading…
Reference in a new issue