commit 5605f285c1b9d551044c464b4416b263800dde97 parent 2185815b0004018cc4c5261f7be1d6936c9fcd22 Author: EinfachToll <istjanichtzufassen@googlemail.com> Date: Tue, 7 Aug 2018 21:39:54 +0200 Fix messing up folding when Vim is in diff mode Diffstat:
M | plugin/vimwiki.vim | | | 36 | +++++++++++++++++++----------------- |
1 file changed, 19 insertions(+), 17 deletions(-)
diff --git a/plugin/vimwiki.vim b/plugin/vimwiki.vim @@ -157,23 +157,25 @@ endfunction " Vim defaults. So we enforce our settings here when the cursor enters a " Vimwiki buffer. function! s:set_windowlocal_options() - let foldmethod = vimwiki#vars#get_global('folding') - if foldmethod =~? '^expr.*' - setlocal foldmethod=expr - setlocal foldexpr=VimwikiFoldLevel(v:lnum) - setlocal foldtext=VimwikiFoldText() - elseif foldmethod =~? '^list.*' || foldmethod =~? '^lists.*' - setlocal foldmethod=expr - setlocal foldexpr=VimwikiFoldListLevel(v:lnum) - setlocal foldtext=VimwikiFoldText() - elseif foldmethod =~? '^syntax.*' - setlocal foldmethod=syntax - setlocal foldtext=VimwikiFoldText() - elseif foldmethod =~? '^custom.*' - " do nothing - else - setlocal foldmethod=manual - normal! zE + if !&diff " if Vim is currently in diff mode, don't interfere with its folding + let foldmethod = vimwiki#vars#get_global('folding') + if foldmethod =~? '^expr.*' + setlocal foldmethod=expr + setlocal foldexpr=VimwikiFoldLevel(v:lnum) + setlocal foldtext=VimwikiFoldText() + elseif foldmethod =~? '^list.*' || foldmethod =~? '^lists.*' + setlocal foldmethod=expr + setlocal foldexpr=VimwikiFoldListLevel(v:lnum) + setlocal foldtext=VimwikiFoldText() + elseif foldmethod =~? '^syntax.*' + setlocal foldmethod=syntax + setlocal foldtext=VimwikiFoldText() + elseif foldmethod =~? '^custom.*' + " do nothing + else + setlocal foldmethod=manual + normal! zE + endif endif if vimwiki#vars#get_global('conceallevel') && exists("+conceallevel")