From fd4fa5bed7a306aea758c4cb8c77e7c6e12000b9 Mon Sep 17 00:00:00 2001 From: Andy Stewart Date: Tue, 25 Apr 2017 14:33:10 +0100 Subject: [PATCH] When switching tabs wait for BufEnter before running. This ensures we process the correct buffers. See #413. --- plugin/gitgutter.vim | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/plugin/gitgutter.vim b/plugin/gitgutter.vim index eeaffb1..0f90d91 100644 --- a/plugin/gitgutter.vim +++ b/plugin/gitgutter.vim @@ -198,28 +198,15 @@ augroup gitgutter if g:gitgutter_eager autocmd BufWritePost,FileChangedShellPost * call gitgutter#process_buffer(bufnr(''), 0) - " When you enter a new tab, BufEnter is only fired if the buffer you enter - " is not the one you came from. - " - " For example: - " - " `:tab split` fires TabEnter but not BufEnter. - " `:tab new` fires TabEnter and BufEnter. - " - " As and when both TabEnter and BufEnter are fired, we do not want to - " process the entered buffer twice. We avoid this by setting and clearing - " a flag. - autocmd BufEnter * \ if gettabvar(tabpagenr(), 'gitgutter_didtabenter') | \ call settabvar(tabpagenr(), 'gitgutter_didtabenter', 0) | + \ call gitgutter#all() | \ else | \ call gitgutter#process_buffer(bufnr(''), 0) | \ endif - autocmd TabEnter * - \ call settabvar(tabpagenr(), 'gitgutter_didtabenter', 1) | - \ call gitgutter#all() + autocmd TabEnter * call settabvar(tabpagenr(), 'gitgutter_didtabenter', 1) if !has('gui_win32') autocmd FocusGained * call gitgutter#all()