unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
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")

      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).