[PATCH] contrib: pick: use global keymap
Austin Clements
amdragon at MIT.EDU
Sun Sep 15 08:36:42 PDT 2013
Quoth Mark Walters on Sep 15 at 9:17 am:
> Austin recently introduced a new global keymap. This makes pick use
> this global map.
>
> In most cases pick needs to override this global map because
> it wants to close the message pane before doing the action. However,
> this documents the over-rides and makes it less likely that the pick
> bindings will get out of sync with the main bindings.
> ---
> contrib/notmuch-pick/notmuch-pick.el | 16 ++++++++++++----
> 1 files changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/contrib/notmuch-pick/notmuch-pick.el b/contrib/notmuch-pick/notmuch-pick.el
> index cba9549..01ca4bd 100644
> --- a/contrib/notmuch-pick/notmuch-pick.el
> +++ b/contrib/notmuch-pick/notmuch-pick.el
> @@ -230,6 +230,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))
Sorry I didn't look at this earlier.
(define-key map [remap notmuch-help]
(notmuch-pick-close-message-pane-and #'notmuch-help))
? (And the same for the others)
That way if the user changes notmuch-common-keymap bindings in simple
ways, pick should stay in sync. And if they change them in
complicated ways (say, writing their own notmuch-search wrapper or
something), pick should more or less gracefully de-sync.
> + ;; 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)
> @@ -244,20 +255,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)
> @@ -849,6 +856,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")
More information about the notmuch
mailing list