" --- --- bindings for folders mode {{{2
let g:notmuch_folders_maps = {
+ \ 'm': ':call <SID>NM_new_mail()<CR>',
\ 's': ':call <SID>NM_search_prompt()<CR>',
\ 'q': ':call <SID>NM_kill_this_buffer()<CR>',
\ '=': ':call <SID>NM_folders_refresh_view()<CR>',
endfunction
function! s:NM_search_reply_to_thread()
- echo 'not implemented'
+ let cmd = ['reply']
+ call add(cmd, <SID>NM_search_thread_id())
+ call add(cmd, 'AND')
+ call extend(cmd, <SID>NM_get_search_words())
+
+ let data = <SID>NM_run(cmd)
+ let lines = split(data, "\n")
+ call <SID>NM_newComposeBuffer(lines, 0)
endfunction
function! s:NM_search_add_tags(tags)
endfunction
function! s:NM_show_reply()
- echo 'not implemented'
+ let cmd = ['reply']
+ call add(cmd, <SID>NM_show_message_id())
+ call add(cmd, 'AND')
+ call extend(cmd, <SID>NM_get_search_words())
+
+ let data = <SID>NM_run(cmd)
+ let lines = split(data, "\n")
+ call <SID>NM_newComposeBuffer(lines, 0)
endfunction
function! s:NM_show_view_all_mime_parts()
let act = 'close'
endif
for fld in info['folds']
- if fld[0] == a:type
- exec printf('%dfold%s', fld[1], act)
+ if fld[0] != a:type
+ continue
endif
+ "let idx = fld[3]
+ "let msg = info['msgs'][idx]
+ "if has_key(msg,'match') && msg['match'] == '0'
+ " continue
+ "endif
+ let cls = foldclosed(fld[1])
+ if cls != -1 && cls != fld[1]
+ continue
+ endif
+ exec printf('%dfold%s', fld[1], act)
endfor
exec printf('nnoremap <buffer> %s :call <SID>NM_show_fold_toggle(''%s'', ''%s'', %d)<CR>', a:key, a:key, a:type, !a:fold)
endfunction
let lnum = lnum + 1
let line = getline(lnum)
endwhile
- let body_starts = lnum + 1
- exec printf('0,%dd', body_starts)
- write
+ let body_starts = lnum
"[-a header] [-b bcc-addr] [-c cc-addr] [-s subject] to-addr
let cmd = ['mail']
endfor
call extend(cmd, tos)
+ " TODO: make sure we have at least one target
+ " TODO: ask about empty jubject, etc
+
+ exec printf('0,%dd', body_starts)
+ write
+
call map(cmd, 's:NM_shell_escape(v:val)')
let cmdtxt = join(cmd) . '< ' . fname
let out = system(cmdtxt)
if start_on_line > 0 && start_on_line <= len(lines)
call cursor(start_on_line, strlen(getline(start_on_line)) + 1)
else
- call cursor(real_hdr_start, strlen(getline(real_hdr_start) + 1)
+ call cursor(real_hdr_start, strlen(getline(real_hdr_start)) + 1)
call <SID>NM_compose_next_entry_area()
endif
" --- external mail handling helpers {{{1
function! s:NM_new_mail()
- echo 'not implemented'
+ call <SID>NM_cmd_compose([], [])
endfunction
" --- tag manipulation helpers {{{1