Re: [PATCH v2 0/2] emacs: Shortcut keys to saved searches
authorMark Walters <markwalters1009@gmail.com>
Tue, 15 Jul 2014 20:18:48 +0000 (21:18 +0100)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 18:03:40 +0000 (10:03 -0800)
7b/6b27be5be88a385c61739122055ff4aacc48aa [new file with mode: 0644]

diff --git a/7b/6b27be5be88a385c61739122055ff4aacc48aa b/7b/6b27be5be88a385c61739122055ff4aacc48aa
new file mode 100644 (file)
index 0000000..a262dee
--- /dev/null
@@ -0,0 +1,188 @@
+Return-Path: <m.walters@qmul.ac.uk>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id 1CAFD431FC0\r
+       for <notmuch@notmuchmail.org>; Tue, 15 Jul 2014 13:19:21 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: 0.502\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=0.502 tagged_above=-999 required=5\r
+       tests=[DKIM_ADSP_CUSTOM_MED=0.001, FREEMAIL_FROM=0.001,\r
+       NML_ADSP_CUSTOM_MED=1.2, RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id 6qDgrLtq3b4l for <notmuch@notmuchmail.org>;\r
+       Tue, 15 Jul 2014 13:19:14 -0700 (PDT)\r
+Received: from mail1.qmul.ac.uk (mail1.qmul.ac.uk [138.37.6.7])\r
+       (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))\r
+       (No client certificate requested)\r
+       by olra.theworths.org (Postfix) with ESMTPS id DC45A431FBD\r
+       for <notmuch@notmuchmail.org>; Tue, 15 Jul 2014 13:19:13 -0700 (PDT)\r
+Received: from smtp.qmul.ac.uk ([138.37.6.40])\r
+       by mail1.qmul.ac.uk with esmtp (Exim 4.71)\r
+       (envelope-from <m.walters@qmul.ac.uk>)\r
+       id 1X79Br-0005cn-SE; Tue, 15 Jul 2014 21:19:08 +0100\r
+Received: from [194.42.225.51] (helo=localhost)\r
+       by smtp.qmul.ac.uk with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.71)\r
+       (envelope-from <m.walters@qmul.ac.uk>)\r
+       id 1X79Br-000373-KL; Tue, 15 Jul 2014 21:19:07 +0100\r
+From: Mark Walters <markwalters1009@gmail.com>\r
+To: Austin Clements <amdragon@MIT.EDU>, notmuch@notmuchmail.org\r
+Subject: Re: [PATCH v2 0/2] emacs: Shortcut keys to saved searches\r
+In-Reply-To: <1405433166-2198-1-git-send-email-amdragon@mit.edu>\r
+References: <1405353735-26244-1-git-send-email-amdragon@mit.edu>\r
+       <1405433166-2198-1-git-send-email-amdragon@mit.edu>\r
+User-Agent: Notmuch/0.15.2+615~g78e3a93 (http://notmuchmail.org) Emacs/23.4.1\r
+       (x86_64-pc-linux-gnu)\r
+Date: Tue, 15 Jul 2014 21:18:48 +0100\r
+Message-ID: <87lhru5qaf.fsf@qmul.ac.uk>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain; charset=us-ascii\r
+X-QM-SPAM-Info: 194.42.225.51 is in Janet mirror of Spamhaus XBL;\r
+       see http://www.spamhaus.org/xbl/\r
+X-Sender-Host-Address: 194.42.225.51\r
+X-QM-Geographic: According to ripencc,\r
+       this message was delivered by a machine in Britain (UK) (GB).\r
+X-QM-SPAM-Info: Sender has good ham record.  :)\r
+X-QM-Body-MD5: 2eed5866bb23d21371769a77ef21c5bd (of first 20000 bytes)\r
+X-SpamAssassin-Score: -0.0\r
+X-SpamAssassin-SpamBar: /\r
+X-SpamAssassin-Report: The QM spam filters have analysed this message to\r
+       determine if it is\r
+       spam. We require at least 5.0 points to mark a message as spam.\r
+       This message scored -0.0 points.\r
+       Summary of the scoring: \r
+       * 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail\r
+       provider *      (markwalters1009[at]gmail.com)\r
+       * -0.0 AWL AWL: From: address is in the auto white-list\r
+X-QM-Scan-Virus: ClamAV says the message is clean\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Tue, 15 Jul 2014 20:19:21 -0000\r
+\r
+\r
+On Tue, 15 Jul 2014, Austin Clements <amdragon@MIT.EDU> wrote:\r
+> This is version 2 of\r
+> id:1405353735-26244-1-git-send-email-amdragon@mit.edu and addresses\r
+> Mark's comments in id:87egxnd4aq.fsf@qmul.ac.uk.\r
+>\r
+> The diff from v1 is below.\r
+\r
+This version gets a +1 from me. I would have a slight preference for\r
+making the prompt "Jump to search: " rather than "Search: " to emphasise\r
+that you can't type an actual search, but am definitely happy with this\r
+version.\r
+\r
+Best wishes\r
+\r
+Mark\r
+\r
+\r
+\r
+\r
+>\r
+> diff --git a/emacs/notmuch-jump.el b/emacs/notmuch-jump.el\r
+> index cb1ae10..9cb1e6a 100644\r
+> --- a/emacs/notmuch-jump.el\r
+> +++ b/emacs/notmuch-jump.el\r
+> @@ -53,20 +53,19 @@ (defun notmuch-jump-search ()\r
+>      (setq action-map (nreverse action-map))\r
+>  \r
+>      (if action-map\r
+> -    (notmuch-jump action-map "Search ")\r
+> -      (error "No shortcut keys for saved searches.  Please customize notmuch-saved-searches."))))\r
+> +    (notmuch-jump action-map "Search: ")\r
+> +      (error "To use notmuch-jump, please customize shortcut keys in notmuch-saved-searches."))))\r
+>  \r
+>  (defvar notmuch-jump--action nil)\r
+>  \r
+>  (defun notmuch-jump (action-map prompt)\r
+>    "Interactively prompt for one of the keys in ACTION-MAP.\r
+>  \r
+> -Displays a pop-up temporary buffer with a summary of all bindings\r
+> -in ACTION-MAP, reads a key from the minibuffer, and performs the\r
+> -corresponding action.  The prompt can be canceled with C-g.\r
+> -PROMPT must be a string to use for the prompt if this command was\r
+> -not invoked directly by a key binding (e.g., it was invoked\r
+> -through M-x).  PROMPT should include a space at the end.\r
+> +Displays a summary of all bindings in ACTION-MAP in the\r
+> +minibuffer, reads a key from the minibuffer, and performs the\r
+> +corresponding action.  The prompt can be canceled with C-g or\r
+> +RET.  PROMPT must be a string to use for the prompt.  PROMPT\r
+> +should include a space at the end.\r
+>  \r
+>  ACTION-MAP must be a list of triples of the form\r
+>    (KEY LABEL ACTION)\r
+> @@ -82,16 +81,9 @@ (defun notmuch-jump (action-map prompt)\r
+>        (with-temp-buffer\r
+>          (notmuch-jump--insert-items (window-body-width) items)\r
+>          (buffer-string)))\r
+> -     (prompt-text\r
+> -      (if (eq this-original-command this-command)\r
+> -          ;; Make it look like we're just part of any regular\r
+> -          ;; submap prompt (like C-x, C-c, etc.)\r
+> -          (concat (format-kbd-macro (this-command-keys)) "-")\r
+> -        ;; We were invoked through something like M-x\r
+> -        prompt))\r
+>       (full-prompt\r
+>        (concat table "\n\n"\r
+> -              (propertize prompt-text 'face 'minibuffer-prompt)))\r
+> +              (propertize prompt 'face 'minibuffer-prompt)))\r
+>       ;; By default, the minibuffer applies the minibuffer face to\r
+>       ;; the entire prompt.  However, we want to clearly\r
+>       ;; distinguish bindings (which we put in the prompt face\r
+> @@ -121,14 +113,14 @@ (defun notmuch-jump--format-actions (action-map)\r
+>  \r
+>    ;; Compute the maximum key description width\r
+>    (let ((key-width 1))\r
+> -    (dolist (action action-map)\r
+> +    (dolist (entry action-map)\r
+>        (setq key-width\r
+>          (max key-width\r
+> -             (string-width (format-kbd-macro (first action))))))\r
+> +             (string-width (format-kbd-macro (first entry))))))\r
+>      ;; Format each action\r
+> -    (mapcar (lambda (action)\r
+> -          (let ((key (format-kbd-macro (first action)))\r
+> -                (desc (second action)))\r
+> +    (mapcar (lambda (entry)\r
+> +          (let ((key (format-kbd-macro (first entry)))\r
+> +                (desc (second entry)))\r
+>              (concat\r
+>               (propertize key 'face 'minibuffer-prompt)\r
+>               (make-string (- key-width (length key)) ? )\r
+> diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el\r
+> index 135422d..b338aaa 100644\r
+> --- a/emacs/notmuch-lib.el\r
+> +++ b/emacs/notmuch-lib.el\r
+> @@ -25,6 +25,9 @@\r
+>  (require 'mm-decode)\r
+>  (require 'cl)\r
+>  \r
+> +(autoload 'notmuch-jump-search "notmuch-jump"\r
+> +  "Jump to a saved search by shortcut key." t)\r
+> +\r
+>  (defvar notmuch-command "notmuch"\r
+>    "Command to run the notmuch binary.")\r
+>  \r
+> @@ -134,8 +137,6 @@ (defvar notmuch-common-keymap\r
+>      map)\r
+>    "Keymap shared by all notmuch modes.")\r
+>  \r
+> -(autoload 'notmuch-jump-search "notmuch-jump" "Jump to a saved search by shortcut key." t)\r
+> -\r
+>  ;; By default clicking on a button does not select the window\r
+>  ;; containing the button (as opposed to clicking on a widget which\r
+>  ;; does). This means that the button action is then executed in the\r