emacs: introduce notmuch-search-by-tag

This is like notmuch-search-filter-by-tag, but creates a new search
rather than filtering the current search. We add this to
notmuch-common-keymap since this can be used by many contexts. We bind
to the key "t", which is the same key used by
notmuch-search-filter-by-tag in notmuch-search-mode-map. This is done
intentionally since the keybinding for notmuch-search-mode-map can be
seen as a specialization of creating a new search.

This change was motivated for use in "notmuch-hello". It is a more
convenient way to search a tag than expanding the list of all tags. I
also noticed many saved searches people use are simply tags.
This commit is contained in:
Keegan Carruthers-Smith 2020-04-13 22:10:50 +02:00 committed by David Bremner
parent 690e36bacd
commit f28e0a9337
3 changed files with 8 additions and 1 deletions

View file

@ -20,7 +20,7 @@
| q | notmuch-bury-or-kill-this-buffer | notmuch-bury-or-kill-this-buffer | notmuch-bury-or-kill-this-buffer | | q | notmuch-bury-or-kill-this-buffer | notmuch-bury-or-kill-this-buffer | notmuch-bury-or-kill-this-buffer |
| r | notmuch-search-reply-to-thread-sender | notmuch-show-reply-sender | notmuch-show-reply-sender | | r | notmuch-search-reply-to-thread-sender | notmuch-show-reply-sender | notmuch-show-reply-sender |
| s | notmuch-search | notmuch-search | notmuch-search | | s | notmuch-search | notmuch-search | notmuch-search |
| t | notmuch-search-filter-by-tag | toggle-truncate-lines | | | t | notmuch-search-filter-by-tag | toggle-truncate-lines | notmuch-search-by-tag |
| u | | | | | u | | | |
| v | | | notmuch-show-view-all-mime-parts | | v | | | notmuch-show-view-all-mime-parts |
| w | | notmuch-show-save-attachments | notmuch-show-save-attachments | | w | | notmuch-show-save-attachments | notmuch-show-save-attachments |

View file

@ -153,6 +153,7 @@ For example, if you wanted to remove an \"inbox\" tag and add an
(define-key map "?" 'notmuch-help) (define-key map "?" 'notmuch-help)
(define-key map "q" 'notmuch-bury-or-kill-this-buffer) (define-key map "q" 'notmuch-bury-or-kill-this-buffer)
(define-key map "s" 'notmuch-search) (define-key map "s" 'notmuch-search)
(define-key map "t" 'notmuch-search-by-tag)
(define-key map "z" 'notmuch-tree) (define-key map "z" 'notmuch-tree)
(define-key map "u" 'notmuch-unthreaded) (define-key map "u" 'notmuch-unthreaded)
(define-key map "m" 'notmuch-mua-new-mail) (define-key map "m" 'notmuch-mua-new-mail)

View file

@ -1077,6 +1077,12 @@ current search results AND that are tagged with the given tag."
(list (notmuch-select-tag-with-completion "Filter by tag: " notmuch-search-query-string))) (list (notmuch-select-tag-with-completion "Filter by tag: " notmuch-search-query-string)))
(notmuch-search (concat notmuch-search-query-string " and tag:" tag) notmuch-search-oldest-first)) (notmuch-search (concat notmuch-search-query-string " and tag:" tag) notmuch-search-oldest-first))
(defun notmuch-search-by-tag (tag)
"Display threads matching TAG in a notmuch-search buffer."
(interactive
(list (notmuch-select-tag-with-completion "Notmuch search tag: ")))
(notmuch-search (concat "tag:" tag)))
;;;###autoload ;;;###autoload
(defun notmuch () (defun notmuch ()
"Run notmuch and display saved searches, known tags, etc." "Run notmuch and display saved searches, known tags, etc."