mirror of
https://github.com/airblade/vim-gitgutter.git
synced 2025-11-09 12:03:48 -05:00
Ensure BufWritePost,FileChangedShellPost always process buffer.
Before this change the TabEnter/BufEnter logic was intertwined with the logic for BufWritePost,FileChangedShellPost. Separating the concerns fixes a minor bug where a TabEnter-BufEnter combination led to the plugin not updating the diff the first time the buffer was written.
This commit is contained in:
@@ -196,18 +196,35 @@ augroup gitgutter
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if g:gitgutter_eager
|
if g:gitgutter_eager
|
||||||
autocmd BufEnter,BufWritePost,FileChangedShellPost *
|
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') |
|
\ if gettabvar(tabpagenr(), 'gitgutter_didtabenter') |
|
||||||
\ call settabvar(tabpagenr(), 'gitgutter_didtabenter', 0) |
|
\ call settabvar(tabpagenr(), 'gitgutter_didtabenter', 0) |
|
||||||
\ else |
|
\ else |
|
||||||
\ call gitgutter#process_buffer(bufnr(''), 0) |
|
\ call gitgutter#process_buffer(bufnr(''), 0) |
|
||||||
\ endif
|
\ endif
|
||||||
|
|
||||||
autocmd TabEnter *
|
autocmd TabEnter *
|
||||||
\ call settabvar(tabpagenr(), 'gitgutter_didtabenter', 1) |
|
\ call settabvar(tabpagenr(), 'gitgutter_didtabenter', 1) |
|
||||||
\ call gitgutter#all()
|
\ call gitgutter#all()
|
||||||
|
|
||||||
if !has('gui_win32')
|
if !has('gui_win32')
|
||||||
autocmd FocusGained * call gitgutter#all()
|
autocmd FocusGained * call gitgutter#all()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
else
|
else
|
||||||
autocmd BufRead,BufWritePost,FileChangedShellPost * call gitgutter#process_buffer(bufnr(''), 0)
|
autocmd BufRead,BufWritePost,FileChangedShellPost * call gitgutter#process_buffer(bufnr(''), 0)
|
||||||
endif
|
endif
|
||||||
|
|||||||
Reference in New Issue
Block a user