[PATCH 6/6] emacs: separate history for operations which accept single and multiple tags

Dmitry Kurochkin dmitry.kurochkin at gmail.com
Fri Jan 27 20:41:24 PST 2012


Some tag-related operations accept a single tag without prefix
(`notmuch-select-tag-with-completion'), others accept multiple tags
prefixed with '+' or '-' (`notmuch-select-tags-with-completion').
Before the change, both functions used a single default minibuffer
history.  This is inconvenient because you have to skip options with
incompatible format when going through the history.  The patch adds
separate history lists for the two functions.  Note that functions
that accept the same input format (e.g. "+", "-", "*") share the
history list as before.
---
 emacs/notmuch.el |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index 24b0ea3..9813e0a 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -76,6 +76,14 @@ For example:
 (defvar notmuch-query-history nil
   "Variable to store minibuffer history for notmuch queries")
 
+(defvar notmuch-select-tag-history nil
+  "Variable to store notmuch tag history for
+  `notmuch-select-tag-with-completion'.")
+
+(defvar notmuch-select-tags-history nil
+  "Variable to store notmuch tags history for
+  `notmuch-select-tags-with-completion'.")
+
 (defun notmuch-tag-completions (&optional search-terms)
   (split-string
    (with-output-to-string
@@ -86,7 +94,7 @@ For example:
 
 (defun notmuch-select-tag-with-completion (prompt &rest search-terms)
   (let ((tag-list (notmuch-tag-completions search-terms)))
-    (completing-read prompt tag-list)))
+    (completing-read prompt tag-list nil nil nil 'notmuch-select-tag-history)))
 
 (defun notmuch-select-tags-with-completion (&optional initial-input &rest search-terms)
   (let* ((add-tag-list (mapcar (apply-partially 'concat "+")
@@ -105,7 +113,7 @@ For example:
 	    map)))
     (delete "" (completing-read-multiple
 		"Operations (+add -drop): notmuch tag " tag-list nil
-		nil initial-input))))
+		nil initial-input 'notmuch-select-tags-history))))
 
 (defun notmuch-update-tags (current-tags changed-tags)
   "Update `current-tags' with `changed-tags' and return the result.
-- 
1.7.8.3



More information about the notmuch mailing list