X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=vim%2Fplugin%2Fnotmuch.vim;h=b8c985812a9e39a34083a68800bf2ff143275337;hb=75633b32209c20f35cb5aa5a19d233450c5b115c;hp=a226f2034d594f781048211265fcdf13582b49d6;hpb=e72a6176e3fc3fcf4b1696e3f0ee9cf66509fb4d;p=notmuch diff --git a/vim/plugin/notmuch.vim b/vim/plugin/notmuch.vim index a226f203..b8c98581 100644 --- a/vim/plugin/notmuch.vim +++ b/vim/plugin/notmuch.vim @@ -178,7 +178,7 @@ let g:notmuch_compose_imaps = { function! s:NM_cmd_folders(words) if len(a:words) - throw 'Not exapecting any arguments for folders command.' + throw 'Not expecting any arguments for folders command.' endif let cmd = ['count'] let disp = [] @@ -243,26 +243,23 @@ function! s:NM_cmd_search(words) let b:nm_raw_lines = lines let b:nm_search_words = a:words - call NM_cmd_search_mksyntax() call NM_set_map('n', g:notmuch_search_maps) setlocal cursorline setlocal nowrap endfunction function! s:NM_cmd_search_fmtline(line) - let m = matchlist(a:line, '^\(thread:\S\+\)\s\([^]]\+\]\) \([^;]\+\); \(.*\) (\([^(]*\))$') + let m = matchlist(a:line, '^\(thread:\S\+\)\s\(.\{12\}\) \[\(\d\+\)/\d\+\] \([^;]\+\); \%(\[[^\[]\+\] \)*\(.*\) (\([^(]*\))$') if !len(m) return 'ERROR PARSING: ' . a:line endif let max = g:notmuch_search_from_column_width - let from = m[3] - if strlen(from) >= max - let from = substitute(m[3][0:max-4], '[^A-Za-z1-9_]*$', '', '') . '...' - endif - return printf('%-20s %-20s | %s (%s)', m[2], from, m[4], m[5]) -endfunction -function! s:NM_cmd_search_mksyntax() - syntax clear nmSearchFrom - exec printf('syntax match nmSearchFrom /\(\] \)\@<=.\{%d\}/ oneline contained', g:notmuch_search_from_column_width) + let flist = [] + for at in split(m[4], ", ") + let p = min([stridx(at, "."), stridx(at, "@")]) + call insert(flist, tolower(at[0:p - 1])) + endfor + let from = join(flist, ", ") + return printf("%-12s %3s %-20.20s | %s (%s)", m[2], m[3], from, m[5], m[6]) endfunction " --- --- search screen action functions {{{2 @@ -496,7 +493,8 @@ function! s:NM_show_archive_thread() endfunction function! s:NM_show_mark_read_then_archive_thread() - echo 'not implemented' + call NM_add_remove_tags(b:nm_search_words, '-', ['unread', 'inbox']) + call NM_show_next_thread() endfunction function! s:NM_show_mark_read_then_next_open_message()