notmuch.el: Add 't' binding to filter results to a specific tag.
authorCarl Worth <cworth@cworth.org>
Wed, 4 Nov 2009 01:01:07 +0000 (17:01 -0800)
committerCarl Worth <cworth@cworth.org>
Wed, 4 Nov 2009 01:01:07 +0000 (17:01 -0800)
This is a convenience function to avoid having to type "tag:" with
the (f)ilter command.

notmuch.el

index 18aca1c7cc9fa20f1bd049a83a9b46cf9a4f37c3..989450a697e946cdb2e0f92fb1c8ca1f32fd917f 100644 (file)
@@ -328,6 +328,7 @@ Does nothing if already on the first message in the buffer."
     (define-key map "p" 'previous-line)
     (define-key map "q" 'kill-this-buffer)
     (define-key map "s" 'notmuch-search)
+    (define-key map "t" 'notmuch-search-filter-by-tag)
     (define-key map "x" 'kill-this-buffer)
     (define-key map "\r" 'notmuch-search-show-thread)
     (define-key map "+" 'notmuch-search-add-tag)
@@ -492,14 +493,21 @@ same relative position within the new buffer."
       (goto-char here))))
 
 (defun notmuch-search-filter (query)
-  "Run \"notmuch search\" to refine the current search results.
+  "Filter the current search results based on an additional query string.
 
-A search string will be constructed by appending QUERY to the
-current search string, and the results of \"notmuch search\" for
-the combined query will be displayed."
+Runs a new search matching only messages that match both the
+current search results AND the additional query string provided."
   (interactive "sFilter search: ")
   (notmuch-search (concat notmuch-search-query-string " and " query)))
 
+(defun notmuch-search-filter-by-tag (tag)
+  "Filter the current search results based on a single tag.
+
+Runs a new search matching only messages that match both the
+current search results AND that are tagged with the given tag."
+  (interactive "sFilter by tag: ")
+  (notmuch-search (concat notmuch-search-query-string " and tag:" tag)))
+
 (defun notmuch ()
   "Run notmuch to display all mail with tag of 'inbox'"
   (interactive)