mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 09:24:54 +01:00
toggle signatures and citations with s/c respectively
This commit is contained in:
parent
1e0005e6d0
commit
5a2d760067
2 changed files with 23 additions and 4 deletions
|
@ -26,4 +26,6 @@ Buffer types:
|
||||||
Keybindings:
|
Keybindings:
|
||||||
q - return to search display
|
q - return to search display
|
||||||
^n - next message
|
^n - next message
|
||||||
|
s - toggle folding of signatures on and off
|
||||||
|
c - toggle folding of citations on and off
|
||||||
|
|
||||||
|
|
|
@ -53,8 +53,8 @@ let s:notmuch_show_citation_regexp = '^\s*>'
|
||||||
|
|
||||||
let s:notmuch_show_headers = [ 'Subject', 'From' ]
|
let s:notmuch_show_headers = [ 'Subject', 'From' ]
|
||||||
|
|
||||||
let s:notmuch_show_fold_signatures = 1
|
let g:notmuch_show_fold_signatures = 1
|
||||||
let s:notmuch_show_fold_citations = 1
|
let g:notmuch_show_fold_citations = 1
|
||||||
|
|
||||||
" --- implement search screen
|
" --- implement search screen
|
||||||
|
|
||||||
|
@ -113,6 +113,8 @@ function! s:NM_cmd_show(words)
|
||||||
|
|
||||||
exec printf("nnoremap <buffer> q :b %d<CR>", b:nm_prev_bufnr)
|
exec printf("nnoremap <buffer> q :b %d<CR>", b:nm_prev_bufnr)
|
||||||
nnoremap <buffer> <C-N> :call <SID>NM_cmd_show_next()<CR>
|
nnoremap <buffer> <C-N> :call <SID>NM_cmd_show_next()<CR>
|
||||||
|
nnoremap <buffer> c :call <SID>NM_cmd_show_fold_toggle('c', 'cit', !g:notmuch_show_fold_citations)<CR>
|
||||||
|
nnoremap <buffer> s :call <SID>NM_cmd_show_fold_toggle('s', 'sig', !g:notmuch_show_fold_signatures)<CR>
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:NM_cmd_show_next()
|
function! s:NM_cmd_show_next()
|
||||||
|
@ -133,6 +135,21 @@ function! s:NM_cmd_show_next()
|
||||||
call <SID>NM_search_display()
|
call <SID>NM_search_display()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! s:NM_cmd_show_fold_toggle(key, type, fold)
|
||||||
|
let info = b:nm_raw_info
|
||||||
|
let act = 'open'
|
||||||
|
if a:fold
|
||||||
|
let act = 'close'
|
||||||
|
endif
|
||||||
|
for fld in info['folds']
|
||||||
|
if fld[0] == a:type
|
||||||
|
exec printf('%dfold%s', fld[1], act)
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
exec printf('nnoremap <buffer> %s :call <SID>NM_cmd_show_fold_toggle(''%s'', ''%s'', %d)<CR>', a:key, a:key, a:type, !a:fold)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" s:NM_cmd_show_parse returns the following dictionary:
|
" s:NM_cmd_show_parse returns the following dictionary:
|
||||||
" 'disp': lines to display
|
" 'disp': lines to display
|
||||||
" 'msgs': message info dicts { start, end, id, depth, filename, descr, header }
|
" 'msgs': message info dicts { start, end, id, depth, filename, descr, header }
|
||||||
|
@ -312,8 +329,8 @@ function! s:NM_cmd_show_mkfolds()
|
||||||
|
|
||||||
for afold in info['folds']
|
for afold in info['folds']
|
||||||
exec printf('%d,%dfold', afold[1], afold[2])
|
exec printf('%d,%dfold', afold[1], afold[2])
|
||||||
if (afold[0] == 'sig' && s:notmuch_show_fold_signatures)
|
if (afold[0] == 'sig' && g:notmuch_show_fold_signatures)
|
||||||
\ || (afold[0] == 'cit' && s:notmuch_show_fold_citations)
|
\ || (afold[0] == 'cit' && g:notmuch_show_fold_citations)
|
||||||
exec printf('%dfoldclose', afold[1])
|
exec printf('%dfoldclose', afold[1])
|
||||||
else
|
else
|
||||||
exec printf('%dfoldopen', afold[1])
|
exec printf('%dfoldopen', afold[1])
|
||||||
|
|
Loading…
Reference in a new issue