From 0fd5b08b3c1281f89d6c616b6fae8fc56da74989 Mon Sep 17 00:00:00 2001 From: Yggdroot Date: Mon, 2 Mar 2020 15:12:32 +0800 Subject: [PATCH] fix issue #289 --- after/plugin/indentLine.vim | 60 ++++++++++++++++++++++--------------- 1 file changed, 36 insertions(+), 24 deletions(-) diff --git a/after/plugin/indentLine.vim b/after/plugin/indentLine.vim index 8a838e0..523b88f 100644 --- a/after/plugin/indentLine.vim +++ b/after/plugin/indentLine.vim @@ -106,6 +106,7 @@ function! s:SetConcealOption() endif endfunction +"{{{1 function! s:ResetConcealOption() function! s:ResetConcealOption() if exists("b:indentLine_ConcealOptionSet") && b:indentLine_ConcealOptionSet if exists("b:indentLine_original_concealcursor") @@ -118,13 +119,24 @@ function! s:ResetConcealOption() endif endfunction -function! s:CheckDiff() +"{{{1 function! s:DisableOnDiff() +function! s:DisableOnDiff() if &diff call s:IndentLinesDisable() call s:LeadingSpaceDisable() endif endfunction +"{{{1 function! s:ToggleOnDiff() +function! s:ToggleOnDiff() + if &diff + call s:IndentLinesDisable() + call s:LeadingSpaceDisable() + else + call s:Setup() + endif +endfunction + "{{{1 function! s:IndentLinesEnable() function! s:IndentLinesEnable() if g:indentLine_newVersion @@ -373,42 +385,42 @@ endfunction augroup indentLine autocmd! if g:indentLine_newVersion - autocmd BufRead,BufNewFile,ColorScheme,Syntax * call InitColor() + autocmd BufRead,BufNewFile,ColorScheme,Syntax * call s:InitColor() if exists("##WinNew") - autocmd WinNew * call Setup() + autocmd WinNew * call s:Setup() endif - autocmd BufWinEnter * call IndentLinesDisable() | call LeadingSpaceDisable() | call Setup() - autocmd FileType * call Disable() - autocmd OptionSet diff call IndentLinesDisable() | call s:LeadingSpaceDisable() - autocmd VimEnter * noautocmd windo call s:CheckDiff() + autocmd BufWinEnter * call s:IndentLinesDisable() | call s:LeadingSpaceDisable() | call s:Setup() + autocmd FileType * call s:Disable() + autocmd OptionSet diff call s:ToggleOnDiff() + autocmd VimEnter * noautocmd windo call s:DisableOnDiff() else - autocmd BufWinEnter * call Setup() + autocmd BufWinEnter * call s:Setup() autocmd User * if exists("b:indentLine_enabled") || exists("b:indentLine_leadingSpaceEnabled") | - \ call Setup() | endif - autocmd BufRead,BufNewFile,ColorScheme,Syntax * call InitColor() + \ call s:Setup() | endif + autocmd BufRead,BufNewFile,ColorScheme,Syntax * call s:InitColor() autocmd BufUnload * let b:indentLine_enabled = 0 | let b:indentLine_leadingSpaceEnabled = 0 autocmd SourcePre $VIMRUNTIME/syntax/nosyntax.vim doautocmd indentLine BufUnload - autocmd FileChangedShellPost * doautocmd indentLine BufUnload | call Setup() - autocmd OptionSet diff call IndentLinesDisable() | call s:LeadingSpaceDisable() - autocmd VimEnter * noautocmd windo call s:CheckDiff() + autocmd FileChangedShellPost * doautocmd indentLine BufUnload | call s:Setup() + autocmd OptionSet diff call s:ToggleOnDiff() + autocmd VimEnter * noautocmd windo call s:DisableOnDiff() endif augroup END "{{{1 commands -command! -nargs=? IndentLinesReset call ResetWidth() -command! IndentLinesToggle call IndentLinesToggle() +command! -nargs=? IndentLinesReset call s:ResetWidth() +command! IndentLinesToggle call s:IndentLinesToggle() if g:indentLine_newVersion - command! IndentLinesEnable let b:indentLine_enabled = 1 | call IndentLinesEnable() - command! IndentLinesDisable let b:indentLine_enabled = 0 | call IndentLinesDisable() - command! LeadingSpaceEnable let b:indentLine_leadingSpaceEnabled = 1 | call LeadingSpaceEnable() - command! LeadingSpaceDisable let b:indentLine_leadingSpaceEnabled = 0 | call LeadingSpaceDisable() + command! IndentLinesEnable let b:indentLine_enabled = 1 | call s:IndentLinesEnable() + command! IndentLinesDisable let b:indentLine_enabled = 0 | call s:IndentLinesDisable() + command! LeadingSpaceEnable let b:indentLine_leadingSpaceEnabled = 1 | call s:LeadingSpaceEnable() + command! LeadingSpaceDisable let b:indentLine_leadingSpaceEnabled = 0 | call s:LeadingSpaceDisable() else - command! IndentLinesEnable call IndentLinesEnable() - command! IndentLinesDisable call IndentLinesDisable() - command! LeadingSpaceEnable call LeadingSpaceEnable() - command! LeadingSpaceDisable call LeadingSpaceDisable() + command! IndentLinesEnable call s:IndentLinesEnable() + command! IndentLinesDisable call s:IndentLinesDisable() + command! LeadingSpaceEnable call s:LeadingSpaceEnable() + command! LeadingSpaceDisable call s:LeadingSpaceDisable() endif -command! LeadingSpaceToggle call LeadingSpaceToggle() +command! LeadingSpaceToggle call s:LeadingSpaceToggle() " vim:et:ts=4:sw=4:fdm=marker:fmr={{{,}}}