" along with Notmuch. If not, see <http://www.gnu.org/licenses/>.
"
" Authors: Bart Trojanowski <bart@jukie.net>
-
+" Contributors: Felipe Contreras <felipe.contreras@gmail.com>,
+" Peter Hartman <peterjohnhartman@gmail.com>
+"
" --- configuration defaults {{{1
let s:notmuch_defaults = {
endfunction
function! s:NM_search_archive_thread()
- call <SID>NM_add_remove_tags([], '-', ['inbox'])
+ call <SID>NM_tag([], ['-inbox'])
norm j
endfunction
function! s:NM_search_mark_read_then_archive_thread()
- call <SID>NM_add_remove_tags([], '-', ['unread', 'inbox'])
+ call <SID>NM_tag([], ['-unread', '-inbox'])
norm j
endfunction
else
let tags = a:intags
endif
- call <SID>NM_add_remove_tags([], a:prefix, tags)
+ call map(tags, 'a:prefix . v:val')
+ call <SID>NM_tag([], tags)
endfunction
" --- implement show screen {{{1
endfunction
function! s:NM_show_archive_thread()
- echo 'not implemented'
+ call <SID>NM_tag(b:nm_search_words, ['-inbox'])
+ call <SID>NM_show_next_thread()
endfunction
function! s:NM_show_mark_read_then_archive_thread()
- call <SID>NM_add_remove_tags(b:nm_search_words, '-', ['unread', 'inbox'])
+ call <SID>NM_tag(b:nm_search_words, ['-unread', '-inbox'])
call <SID>NM_show_next_thread()
endfunction
let filter = <SID>NM_combine_tags('tag:', advance_tags, 'OR', '()')
\ + ['AND']
\ + <SID>NM_combine_tags('', ids, 'OR', '()')
- call <SID>NM_add_remove_tags(filter, '-', advance_tags)
+ call map(advance_tags, '"+" . v:val')
+ call <SID>NM_tag(filter, advance_tags)
call <SID>NM_show_next(1, 1)
return
endif
" do this last to hide the latency
let filter = <SID>NM_combine_tags('tag:', advance_tags, 'OR', '()')
\ + ['AND', msg_top['id']]
- call <SID>NM_add_remove_tags(filter, '-', advance_tags)
+ call map(advance_tags, '"-" . v:val')
+ call <SID>NM_tag(filter, advance_tags)
endif
return
endif
" --- --- compose screen helper functions {{{2
function! s:NM_compose_get_user_email()
- let name = substitute(system('id -u -n'), '\v(^\s*|\s*$|\n)', '', 'g')
- let fqdn = substitute(system('hostname -f'), '\v(^\s*|\s*$|\n)', '', 'g')
-
- " TODO: do this properly
- return name . '@' . fqdn
+ " TODO: do this properly (still), i.e., allow for multiple email accounts
+ let email = substitute(system('notmuch config get user.primary_email'), '\v(^\s*|\s*$|\n)', '', 'g')
+ return email
endfunction
function! s:NM_compose_find_line_match(start, pattern, failure)
let b:nm_prev_bufnr = prev_bufnr
endfunction
-function! s:NM_add_remove_tags(filter, prefix, tags)
+function! s:NM_tag(filter, tags)
let filter = len(a:filter) ? a:filter : [<SID>NM_search_thread_id()]
if !len(filter)
throw 'Eeek! I couldn''t find the thead id!'
endif
- call map(a:tags, 'a:prefix . v:val')
let args = ['tag']
call extend(args, a:tags)
call add(args, '--')