VIM: Respect exclude_tags specified in .notmuch-config
authorFranz Fellner <alpine.art.de@gmail.com>
Thu, 22 Jan 2015 12:52:47 +0000 (13:52 +0100)
committerDavid Bremner <david@tethera.net>
Thu, 22 Jan 2015 19:34:31 +0000 (20:34 +0100)
Exclude mails tagged with any tag specified in 'notmuch config get
search.exclude_tags' in folders list and search list.

vim/notmuch.vim

index cad95178e29d18c4b142b5bc5948c6253f3a4b8a..cb6695a80715e2aa4b183a8eaee6da4ef4bc62cc 100644 (file)
@@ -477,6 +477,7 @@ ruby << EOF
 
        $db_name = nil
        $email = $email_name = $email_address = nil
+       $exclude_tags = []
        $searches = []
        $threads = []
        $messages = []
@@ -496,6 +497,8 @@ ruby << EOF
                $email_address = get_config_item('user.primary_email')
                $email_name = get_config_item('user.name')
                $email = "%s <%s>" % [$email_name, $email_address]
+               ignore_tags = get_config_item('search.exclude_tags')
+               $exclude_tags = ignore_tags.split("\n")
        end
 
        def vim_puts(s)
@@ -637,6 +640,9 @@ ruby << EOF
                        $searches.clear
                        folders.each do |name, search|
                                q = $curbuf.query(search)
+                               $exclude_tags.each { |t|
+                                       q.add_tag_exclude(t)
+                               }
                                $searches << search
                                count = count_threads ? q.search_threads.count : q.search_messages.count
                                b << "%9d %-20s (%s)" % [count, name, search]
@@ -648,6 +654,9 @@ ruby << EOF
                date_fmt = VIM::evaluate('g:notmuch_date_format')
                q = $curbuf.query(search)
                q.sort = Notmuch::SORT_NEWEST_FIRST
+               $exclude_tags.each { |t|
+                       q.add_tag_exclude(t)
+               }
                $threads.clear
                t = q.search_threads