emacs: new command notmuch-tree-filter

This command is analogous to notmuch-filter, but is defined on tree
mode buffers.
This commit is contained in:
jao 2021-08-22 01:50:48 +01:00 committed by David Bremner
parent 4f84c01b3a
commit 7857457833
3 changed files with 20 additions and 1 deletions

View file

@ -12,7 +12,7 @@
| i | | | | | i | | | |
| j | notmuch-jump-search | notmuch-jump-search | notmuch-jump-search | | j | notmuch-jump-search | notmuch-jump-search | notmuch-jump-search |
| k | notmuch-tag-jump | notmuch-tag-jump | notmuch-tag-jump | | k | notmuch-tag-jump | notmuch-tag-jump | notmuch-tag-jump |
| l | notmuch-search-filter | notmuch-show-filter-thread | | | l | notmuch-search-filter | notmuch-show-filter-thread | notmuch-tree-filter |
| m | notmuch-mua-new-mail | notmuch-mua-new-mail | notmuch-mua-new-mail | | m | notmuch-mua-new-mail | notmuch-mua-new-mail | notmuch-mua-new-mail |
| n | notmuch-search-next-thread | notmuch-show-next-open-message | notmuch-tree-next-matching-message | | n | notmuch-search-next-thread | notmuch-show-next-open-message | notmuch-tree-next-matching-message |
| o | notmuch-search-toggle-order | | notmuch-tree-toggle-order | | o | notmuch-search-toggle-order | | notmuch-tree-toggle-order |

View file

@ -302,6 +302,9 @@ tags.
``o`` ``notmuch-tree-toggle-order`` ``o`` ``notmuch-tree-toggle-order``
|docstring::notmuch-tree-toggle-order| |docstring::notmuch-tree-toggle-order|
``l`` ``notmuch-tree-filter``
Filter or LIMIT the current search results based on an additional query string
``g`` ``=`` ``g`` ``=``
Refresh the buffer Refresh the buffer

View file

@ -349,6 +349,7 @@ then NAME behaves like CMD."
(define-key map "r" 'notmuch-tree-reply-sender) (define-key map "r" 'notmuch-tree-reply-sender)
(define-key map "R" 'notmuch-tree-reply) (define-key map "R" 'notmuch-tree-reply)
(define-key map "V" 'notmuch-tree-view-raw-message) (define-key map "V" 'notmuch-tree-view-raw-message)
(define-key map "l" 'notmuch-tree-filter)
;; The main tree view bindings ;; The main tree view bindings
(define-key map (kbd "RET") 'notmuch-tree-show-message) (define-key map (kbd "RET") 'notmuch-tree-show-message)
@ -1168,6 +1169,21 @@ The arguments are:
(interactive) (interactive)
(notmuch-tree query query-context target buffer-name open-target t)) (notmuch-tree query query-context target buffer-name open-target t))
(defun notmuch-tree-filter (query)
"Filter or LIMIT the current search results based on an additional query string.
Runs a new tree search matching only messages that match both the
current search results AND the additional query string provided."
(interactive (list (notmuch-read-query "Filter search: ")))
(let ((notmuch-show-process-crypto (notmuch-tree--message-process-crypto))
(grouped-query (notmuch-group-disjunctive-query-string query))
(grouped-original-query (notmuch-group-disjunctive-query-string
(notmuch-tree-get-query))))
(notmuch-tree-close-message-window)
(notmuch-tree (if (string= grouped-original-query "*")
grouped-query
(concat grouped-original-query " and " grouped-query)))))
;;; _ ;;; _
(provide 'notmuch-tree) (provide 'notmuch-tree)