[PATCH v2] emacs: set default in notmuch-read-query
authorMark Walters <markwalters1009@gmail.com>
Mon, 23 Jun 2014 21:06:46 +0000 (22:06 +0100)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 18:03:17 +0000 (10:03 -0800)
da/33ffb9e940960a6a3e43e03cc164e10bd71850 [new file with mode: 0644]

diff --git a/da/33ffb9e940960a6a3e43e03cc164e10bd71850 b/da/33ffb9e940960a6a3e43e03cc164e10bd71850
new file mode 100644 (file)
index 0000000..ab10e9c
--- /dev/null
@@ -0,0 +1,162 @@
+Return-Path: <markwalters1009@gmail.com>\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 04552431FAF\r
+       for <notmuch@notmuchmail.org>; Mon, 23 Jun 2014 14:07:02 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: 0.201\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=0.201 tagged_above=-999 required=5\r
+       tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,\r
+       FREEMAIL_ENVFROM_END_DIGIT=1, FREEMAIL_FROM=0.001,\r
+       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 k4pWurzcqH0e for <notmuch@notmuchmail.org>;\r
+       Mon, 23 Jun 2014 14:06:56 -0700 (PDT)\r
+Received: from mail-wg0-f41.google.com (mail-wg0-f41.google.com\r
+ [74.125.82.41])       (using TLSv1 with cipher RC4-SHA (128/128 bits))        (No client\r
+ certificate requested)        by olra.theworths.org (Postfix) with ESMTPS id\r
+ 5320B431FAE   for <notmuch@notmuchmail.org>; Mon, 23 Jun 2014 14:06:56 -0700\r
+ (PDT)\r
+Received: by mail-wg0-f41.google.com with SMTP id a1so6937775wgh.0\r
+       for <notmuch@notmuchmail.org>; Mon, 23 Jun 2014 14:06:54 -0700 (PDT)\r
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;\r
+       h=from:to:cc:subject:date:message-id:in-reply-to:references;\r
+       bh=BpqOnTUMRM3NxllU/+RHRQrpszvTI4c4dlyDHevdj+Y=;\r
+       b=Gd2Oja41g7dfWwRH2dBFYdA+gyamX8mMMNmW6Nu+uGnUR//84aG7SMBayb2ie6XI18\r
+       PEL3th/bEYxGksGD281uAM6ifvr0VMzePFNZn0T2wV/+WLkZn6xPRfkVwENENuLBMZVk\r
+       EIUB2WadbWd1JcxTl5mRgMPftQMCG47iJ345youcWM6OSwO5Cm3zDZRv8UpPgqS3quuf\r
+       sLtDfBFFBOq1DhGJSm1F01EhG3N3u131NJCjalktQXBQkznyUGABTcCvPx2HrHDq7TGx\r
+       TiWXTY0qiV+foVgZvrP3GUnmX+o9yBuNsisj8EMK8zmtTjnHMh+IAF3D5hgeL5qw6lM0\r
+       GU6A==\r
+X-Received: by 10.180.198.226 with SMTP id jf2mr28730479wic.35.1403557613784; \r
+       Mon, 23 Jun 2014 14:06:53 -0700 (PDT)\r
+Received: from localhost (5751dfa2.skybroadband.com. [87.81.223.162])\r
+       by mx.google.com with ESMTPSA id\r
+       hb8sm28389256wib.12.2014.06.23.14.06.52 for <multiple recipients>\r
+       (version=TLSv1.2 cipher=RC4-SHA bits=128/128);\r
+       Mon, 23 Jun 2014 14:06:53 -0700 (PDT)\r
+From: Mark Walters <markwalters1009@gmail.com>\r
+To: notmuch@notmuchmail.org\r
+Subject: [PATCH v2] emacs: set default in notmuch-read-query\r
+Date: Mon, 23 Jun 2014 22:06:46 +0100\r
+Message-Id: <1403557606-13397-1-git-send-email-markwalters1009@gmail.com>\r
+X-Mailer: git-send-email 1.7.10.4\r
+In-Reply-To: <874n134bbi.fsf@qmul.ac.uk>\r
+References: <874n134bbi.fsf@qmul.ac.uk>\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: Mon, 23 Jun 2014 21:07:02 -0000\r
+\r
+This adds the current query as a "default value" to\r
+notmuch-read-qeury. The default value is available via a down-arrow as\r
+opposed to history which is available from the up arrow.\r
+\r
+Note if a user presses return in the minibuffer this value is not\r
+returned.\r
+\r
+The implementation is simple but notmuch-read-query could be called\r
+via notmuch-search/notmuch-tree etc from any buffer so it makes sense\r
+to put the decision of how to extract the current query in\r
+notmuch-read-query rather than in each of the callers.\r
+---\r
+\r
+v2 keeps the logic for extracting a query in the relevant file\r
+(show/tree etc) so notmuch-read-query just needs to choose which one\r
+to call.\r
+\r
+Best wishes\r
+\r
+Mark\r
+\r
+\r
+\r
+ emacs/notmuch-show.el |    9 +++++++++\r
+ emacs/notmuch-tree.el |    9 +++++++++\r
+ emacs/notmuch.el      |   10 +++++++++-\r
+ 3 files changed, 27 insertions(+), 1 deletion(-)\r
+\r
+diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el\r
+index df10d4b..313952f 100644\r
+--- a/emacs/notmuch-show.el\r
++++ b/emacs/notmuch-show.el\r
+@@ -1186,6 +1186,15 @@ (defun notmuch-show-capture-state ()\r
+  - the current message."\r
+   (list (notmuch-show-get-message-id) (notmuch-show-get-message-ids-for-open-messages)))\r
\r
++(defun notmuch-show-get-query ()\r
++  "Return the current query in this show buffer"\r
++  (if notmuch-show-query-context\r
++      (concat notmuch-show-thread-id\r
++            " and ("\r
++            notmuch-show-query-context\r
++            ")")\r
++    notmuch-show-thread-id))\r
++\r
+ (defun notmuch-show-apply-state (state)\r
+   "Apply STATE to the current buffer.\r
\r
+diff --git a/emacs/notmuch-tree.el b/emacs/notmuch-tree.el\r
+index 7d5f475..e9249da 100644\r
+--- a/emacs/notmuch-tree.el\r
++++ b/emacs/notmuch-tree.el\r
+@@ -897,6 +897,15 @@ (defun notmuch-tree-worker (basic-query &optional query-context target open-targ\r
+       (set-process-filter proc 'notmuch-tree-process-filter)\r
+       (set-process-query-on-exit-flag proc nil))))\r
\r
++(defun notmuch-tree-get-query ()\r
++  "Return the current query in this tree buffer"\r
++  (if notmuch-tree-query-context\r
++      (concat notmuch-tree-basic-query\r
++            " and ("\r
++            notmuch-tree-query-context\r
++            ")")\r
++    notmuch-tree-basic-query))\r
++\r
+ (defun notmuch-tree (&optional query query-context target buffer-name open-target)\r
+   "Display threads matching QUERY in Tree View.\r
\r
+diff --git a/emacs/notmuch.el b/emacs/notmuch.el\r
+index 6c0bc1b..5339a64 100644\r
+--- a/emacs/notmuch.el\r
++++ b/emacs/notmuch.el\r
+@@ -860,6 +860,10 @@ (defun notmuch-read-query (prompt)\r
+                         (concat "tag:" (notmuch-escape-boolean-term tag)))\r
+                       (process-lines notmuch-command "search" "--output=tags" "*")))))\r
+     (let ((keymap (copy-keymap minibuffer-local-map))\r
++        (current-query (case major-mode\r
++                         (notmuch-search-mode (notmuch-search-get-query))\r
++                         (notmuch-show-mode (notmuch-show-get-query))\r
++                         (notmuch-tree-mode (notmuch-tree-get-query))))\r
+         (minibuffer-completion-table\r
+          (completion-table-dynamic\r
+           (lambda (string)\r
+@@ -877,7 +881,11 @@ (defun notmuch-read-query (prompt)\r
+       (define-key keymap (kbd "TAB") 'minibuffer-complete)\r
+       (let ((history-delete-duplicates t))\r
+       (read-from-minibuffer prompt nil keymap nil\r
+-                            'notmuch-search-history nil nil)))))\r
++                            'notmuch-search-history current-query nil)))))\r
++\r
++(defun notmuch-search-get-query ()\r
++  "Return the current query in this search buffer"\r
++  notmuch-search-query-string)\r
\r
+ ;;;###autoload\r
+ (put 'notmuch-search 'notmuch-doc "Search for messages.")\r
+-- \r
+1.7.10.4\r
+\r