From: Austin Clements <amdragon@MIT.EDU>
To: Mark Walters <markwalters1009@gmail.com>
Cc: notmuch@notmuchmail.org
Subject: Re: [PATCH] contrib: pick: use global keymap
Date: Sun, 15 Sep 2013 11:36:42 -0400 [thread overview]
Message-ID: <20130915153642.GY1426@mit.edu> (raw)
In-Reply-To: <1379233068-9626-1-git-send-email-markwalters1009@gmail.com>
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")
prev parent reply other threads:[~2013-09-15 15:36 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-15 8:17 [PATCH] contrib: pick: use global keymap Mark Walters
2013-09-15 8:35 ` Tomi Ollila
2013-09-15 12:08 ` David Bremner
2013-09-15 15:36 ` Austin Clements [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://notmuchmail.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130915153642.GY1426@mit.edu \
--to=amdragon@mit.edu \
--cc=markwalters1009@gmail.com \
--cc=notmuch@notmuchmail.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).