Speed improvement with folding enabled

The 'foldmethod' was being reset every time the cursor entered a vimwiki, causing an unnecessary large delay. So it was changed to set it only the first time the buffer is loaded into a window. This greatly improves performance when switching between vim tabs. Fold settings are also reapplied after using 'diffoff'. Added test/ directory with sample file and instructions for testing this change.

Fixes #580
This commit is contained in:
Marcelo D Montu
2019-04-22 11:39:11 -03:00
committed by Rane Brown
parent 510c149512
commit 2b6fa274a8
3 changed files with 10957 additions and 2 deletions

View File

@ -102,12 +102,22 @@ function! s:setup_buffer_enter()
return
endif
call s:set_global_options()
endfunction
" this is called when the buffer enters a window or when running a diff
function! s:setup_buffer_win_enter()
" don't do anything if it's not managed by Vimwiki (that is, when it's not in
" a registered wiki and not a temporary wiki)
if vimwiki#vars#get_bufferlocal('wiki_nr') == -1
return
endif
if &filetype != 'vimwiki'
setfiletype vimwiki
endif
call s:set_global_options()
call s:set_windowlocal_options()
endfunction
@ -302,6 +312,10 @@ augroup vimwiki
exe 'autocmd BufNewFile,BufRead *'.s:ext.' call s:setup_new_wiki_buffer()'
exe 'autocmd BufEnter *'.s:ext.' call s:setup_buffer_enter()'
exe 'autocmd BufLeave *'.s:ext.' call s:setup_buffer_leave()'
exe 'autocmd BufWinEnter *'.s:ext.' call s:setup_buffer_win_enter()'
if exists('##DiffUpdated')
exe 'autocmd DiffUpdated *'.s:ext.' call s:setup_buffer_win_enter()'
endif
" automatically generate a level 1 header for new files
exe 'autocmd BufNewFile *'.s:ext.' call s:create_h1(expand("%:p"))'
" Format tables when exit from insert mode. Do not use textwidth to