projects
/
notmuch
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5a32a1d
)
vim: pass filter expression to add/remove tag functions
author
Bart Trojanowski
<bart@jukie.net>
Wed, 25 Nov 2009 19:12:29 +0000
(14:12 -0500)
committer
Bart Trojanowski
<bart@jukie.net>
Wed, 25 Nov 2009 19:12:29 +0000
(14:12 -0500)
vim/plugin/notmuch.vim
patch
|
blob
|
history
diff --git
a/vim/plugin/notmuch.vim
b/vim/plugin/notmuch.vim
index 8f6c7748ca5c1495c88c923f39cc9caa511bef93..f0106604f081a5a296c126a5157f59feb36c8f36 100644
(file)
--- a/
vim/plugin/notmuch.vim
+++ b/
vim/plugin/notmuch.vim
@@
-276,8
+276,8
@@
function! s:NM_search_edit()
endfunction
function! s:NM_search_archive_thread()
endfunction
function! s:NM_search_archive_thread()
- call <SID>NM_add_remove_tags_on_screen('-', ['inbox'])
- call <SID>NM_add_remove_tags('-', ['inbox'])
+ call <SID>NM_add_remove_tags_on_screen('
', '
-', ['inbox'])
+ call <SID>NM_add_remove_tags(
[],
'-', ['inbox'])
norm j
endfunction
norm j
endfunction
@@
-370,8
+370,8
@@
function! s:NM_search_add_remove_tags(prompt, prefix, intags)
else
let tags = a:intags
endif
else
let tags = a:intags
endif
- call <SID>NM_add_remove_tags(a:prefix, tags)
- call <SID>NM_add_remove_tags_on_screen(a:prefix, tags)
+ call <SID>NM_add_remove_tags(
[],
a:prefix, tags)
+ call <SID>NM_add_remove_tags_on_screen(
'',
a:prefix, tags)
endfunction
" --- implement show screen {{{1
endfunction
" --- implement show screen {{{1
@@
-845,26
+845,31
@@
function! s:NM_search_expand(arg)
let b:nm_prev_bufnr = prev_bufnr
endfunction
let b:nm_prev_bufnr = prev_bufnr
endfunction
-function! s:NM_add_remove_tags(prefix, tags)
- let
id = <SID>NM_search_thread_id()
- if
id == ''
+function! s:NM_add_remove_tags(
filter,
prefix, tags)
+ let
filter = len(a:filter) ? a:filter : [<SID>NM_search_thread_id()]
+ if
!len(filter)
echoe 'Eeek! I couldn''t find the thead id!'
endif
echoe 'Eeek! I couldn''t find the thead id!'
endif
+ echo 'filter = ' . string(filter) . ' ... ' . string(type(filter))
call map(a:tags, 'a:prefix . v:val')
" TODO: handle errors
call map(a:tags, 'a:prefix . v:val')
" TODO: handle errors
- call <SID>NM_run(['tag'] + a:tags + ['--', id])
+ let args = ['tag']
+ call extend(args, a:tags)
+ call add(args, '--')
+ call extend(args, filter)
+ echo 'NUM_run( ' . string(args) . ' )'
+ call <SID>NM_run(args)
endfunction
endfunction
-function! s:NM_add_remove_tags_on_screen(prefix, tags)
- let online = ''
+function! s:NM_add_remove_tags_on_screen(online, prefix, tags)
setlocal modifiable
if a:prefix == '-'
for tagname in a:tags
setlocal modifiable
if a:prefix == '-'
for tagname in a:tags
- exec printf('silent
%ss/(\([^)]*\)\<%s\>\([^)]*\))$/(\1\2)/', online
, tagname)
+ exec printf('silent
! %ss/(\([^)]*\)\<%s\>\([^)]*\))$/(\1\2)/', string(a:online)
, tagname)
endfor
else
for tagname in a:tags
endfor
else
for tagname in a:tags
- exec printf('silent
%ss/(\([^)]*\)\([^)]*\))$/(\1 %s)/', online
, tagname)
+ exec printf('silent
! %ss/(\([^)]*\)\([^)]*\))$/(\1 %s)/', string(a:online)
, tagname)
endfor
endif
setlocal nomodifiable
endfor
endif
setlocal nomodifiable