X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=emacs%2Fnotmuch-tree.el;h=d5587a9c6351ca052f23311ae2c865f58ee2688d;hb=02d3c7610297437da5ddc414e16cd1fabf95dcfb;hp=5695b684029c9fad127d93be65773d9783befaae;hpb=3d38baf35280b9fe2d94a104bb2148e82164996b;p=notmuch diff --git a/emacs/notmuch-tree.el b/emacs/notmuch-tree.el index 5695b684..d5587a9c 100644 --- a/emacs/notmuch-tree.el +++ b/emacs/notmuch-tree.el @@ -1,4 +1,4 @@ -;; notmuch-tree.el --- displaying notmuch forests. +;;; notmuch-tree.el --- displaying notmuch forests. ;; ;; Copyright © Carl Worth ;; Copyright © David Edmondson @@ -17,11 +17,13 @@ ;; General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License -;; along with Notmuch. If not, see . +;; along with Notmuch. If not, see . ;; ;; Authors: David Edmondson ;; Mark Walters +;;; Code: + (require 'mail-parse) (require 'notmuch-lib) @@ -239,12 +241,17 @@ FUNC." (define-key map [remap notmuch-search] 'notmuch-tree-to-search) ;; Override because we want to close message pane first. (define-key map [remap notmuch-mua-new-mail] (notmuch-tree-close-message-pane-and #'notmuch-mua-new-mail)) + ;; Override because we want to close message pane first. + (define-key map [remap notmuch-jump-search] (notmuch-tree-close-message-pane-and #'notmuch-jump-search)) + + (define-key map "S" 'notmuch-search-from-tree-current-query) ;; these use notmuch-show functions directly (define-key map "|" 'notmuch-show-pipe-message) (define-key map "w" 'notmuch-show-save-attachments) (define-key map "v" 'notmuch-show-view-all-mime-parts) (define-key map "c" 'notmuch-show-stash-map) + (define-key map "b" 'notmuch-show-resend-message) ;; these apply to the message pane (define-key map (kbd "M-TAB") (notmuch-tree-to-message-pane #'notmuch-show-previous-button)) @@ -264,7 +271,6 @@ FUNC." (define-key map "x" 'notmuch-tree-quit) (define-key map "A" 'notmuch-tree-archive-thread) (define-key map "a" 'notmuch-tree-archive-message-then-next) - (define-key map "=" 'notmuch-tree-refresh-view) (define-key map "z" 'notmuch-tree-to-tree) (define-key map "n" 'notmuch-tree-next-matching-message) (define-key map "p" 'notmuch-tree-prev-matching-message) @@ -272,11 +278,12 @@ FUNC." (define-key map "P" 'notmuch-tree-prev-message) (define-key map (kbd "M-p") 'notmuch-tree-prev-thread) (define-key map (kbd "M-n") 'notmuch-tree-next-thread) + (define-key map "k" 'notmuch-tag-jump) (define-key map "-" 'notmuch-tree-remove-tag) (define-key map "+" 'notmuch-tree-add-tag) (define-key map "*" 'notmuch-tree-tag-thread) (define-key map " " 'notmuch-tree-scroll-or-next) - (define-key map "b" 'notmuch-tree-scroll-message-window-back) + (define-key map (kbd "DEL") 'notmuch-tree-scroll-message-window-back) map)) (fset 'notmuch-tree-mode-map notmuch-tree-mode-map) @@ -402,6 +409,12 @@ Does NOT change the database." (notmuch-tree-close-message-window) (notmuch-tree query))) +(defun notmuch-search-from-tree-current-query () + "Call notmuch search with the current query" + (interactive) + (notmuch-tree-close-message-window) + (notmuch-search (notmuch-tree-get-query))) + (defun notmuch-tree-message-window-kill-hook () "Close the message pane when exiting the show buffer." (let ((buffer (current-buffer))) @@ -793,7 +806,7 @@ This function inserts a collection of several complete threads as passed to it by notmuch-tree-process-filter." (mapc 'notmuch-tree-insert-forest-thread forest)) -(defun notmuch-tree-mode () +(define-derived-mode notmuch-tree-mode fundamental-mode "notmuch-tree" "Major mode displaying messages (as opposed to threads) of of a notmuch search. This buffer contains the results of a \"notmuch tree\" of your @@ -807,12 +820,7 @@ Complete list of currently available key bindings: \\{notmuch-tree-mode-map}" - (interactive) - (kill-all-local-variables) (setq notmuch-buffer-refresh-function #'notmuch-tree-refresh-view) - (use-local-map notmuch-tree-mode-map) - (setq major-mode 'notmuch-tree-mode - mode-name "notmuch-tree") (hl-line-mode 1) (setq buffer-read-only t truncate-lines t)) @@ -937,3 +945,5 @@ The arguments are: ;; (provide 'notmuch-tree) + +;;; notmuch-tree.el ends here