X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=contrib%2Fnotmuch-pick%2Fnotmuch-pick.el;h=c5df94dbb64372adf58f51aae9413b35ea3773a9;hb=44bfad08f131fbfa72dbdcd0982414650cb49a08;hp=32bd6b5030e049f83a74b4032b051a0e4516c88d;hpb=7febf701e7f7141a3ca529720d5ff0e0218a9f74;p=notmuch diff --git a/contrib/notmuch-pick/notmuch-pick.el b/contrib/notmuch-pick/notmuch-pick.el index 32bd6b50..c5df94db 100644 --- a/contrib/notmuch-pick/notmuch-pick.el +++ b/contrib/notmuch-pick/notmuch-pick.el @@ -213,6 +213,17 @@ FUNC." (defvar notmuch-pick-mode-map (let ((map (make-sparse-keymap))) + (set-keymap-parent map notmuch-common-keymap) + ;; The following override the global keymap. + ;; Override because we want to close message pane first. + (define-key map "?" (notmuch-pick-close-message-pane-and #'notmuch-help)) + ;; Override because we first close message pane and then close pick buffer. + (define-key map "q" 'notmuch-pick-quit) + ;; Override because we close message pane after the search query is entered. + (define-key map "s" 'notmuch-pick-to-search) + ;; Override because we want to close message pane first. + (define-key map "m" (notmuch-pick-close-message-pane-and #'notmuch-mua-new-mail)) + (define-key map [mouse-1] 'notmuch-pick-show-message) ;; these use notmuch-show functions directly (define-key map "|" 'notmuch-show-pipe-message) @@ -227,20 +238,16 @@ FUNC." (define-key map "e" (notmuch-pick-to-message-pane #'notmuch-pick-button-activate)) ;; bindings from show (or elsewhere) but we close the message pane first. - (define-key map "m" (notmuch-pick-close-message-pane-and #'notmuch-mua-new-mail)) (define-key map "f" (notmuch-pick-close-message-pane-and #'notmuch-show-forward-message)) (define-key map "r" (notmuch-pick-close-message-pane-and #'notmuch-show-reply-sender)) (define-key map "R" (notmuch-pick-close-message-pane-and #'notmuch-show-reply)) (define-key map "V" (notmuch-pick-close-message-pane-and #'notmuch-show-view-raw-message)) - (define-key map "?" (notmuch-pick-close-message-pane-and #'notmuch-help)) ;; The main pick bindings - (define-key map "q" 'notmuch-pick-quit) (define-key map "x" 'notmuch-pick-quit) (define-key map "A" 'notmuch-pick-archive-thread) (define-key map "a" 'notmuch-pick-archive-message-then-next) (define-key map "=" 'notmuch-pick-refresh-view) - (define-key map "s" 'notmuch-pick-to-search) (define-key map "z" 'notmuch-pick-to-pick) (define-key map "n" 'notmuch-pick-next-matching-message) (define-key map "p" 'notmuch-pick-prev-matching-message) @@ -704,10 +711,9 @@ unchanged ADDRESS if parsing fails." (face (if match 'notmuch-pick-match-tag-face 'notmuch-pick-no-match-tag-face))) - (when tags - (insert (propertize (format format-string - (mapconcat #'identity tags ", ")) - 'face face)))))))) + (insert (propertize (format format-string + (mapconcat #'identity tags ", ")) + 'face face))))))) (defun notmuch-pick-insert-msg (msg) "Insert the message MSG according to notmuch-pick-result-format" @@ -808,6 +814,7 @@ Complete list of currently available key bindings: (interactive) (kill-all-local-variables) + (setq notmuch-buffer-refresh-function #'notmuch-pick-refresh-view) (use-local-map notmuch-pick-mode-map) (setq major-mode 'notmuch-pick-mode mode-name "notmuch-pick") @@ -854,6 +861,10 @@ Complete list of currently available key bindings: results-buf))))) (defun notmuch-pick-worker (basic-query &optional query-context target open-target) + "Insert the actual pick search in the current buffer. + +This is is a helper function for notmuch-pick. The arguments are +the same as for the function notmuch-pick." (interactive) (notmuch-pick-mode) (setq notmuch-pick-basic-query basic-query) @@ -895,7 +906,7 @@ The arguments are: BUFFER-NAME: the name of the buffer to show the pick tree. If it is nil \"*notmuch-pick\" followed by QUERY is used. OPEN-TARGET: If TRUE open the target message in the message pane." - (interactive "sNotmuch pick: ") + (interactive) (if (null query) (setq query (notmuch-read-query "Notmuch pick: "))) (let ((buffer (get-buffer-create (generate-new-buffer-name