From 8c243a7f0dc4de3acaa789e264a80b0ec002bc57 Mon Sep 17 00:00:00 2001 From: Tim Pope Date: Mon, 6 Sep 2021 15:14:43 -0400 Subject: [PATCH] Provide User FugitiveEditor event I'm not sure if this should trigger every time the buffer is loaded, or only on the initial split. Arbitrarily pick the latter for now. References: https://github.com/tpope/vim-fugitive/issues/1828 --- autoload/fugitive.vim | 12 +++++++++++- doc/fugitive.txt | 4 ++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/autoload/fugitive.vim b/autoload/fugitive.vim index 5017e11..9508228 100644 --- a/autoload/fugitive.vim +++ b/autoload/fugitive.vim @@ -3145,8 +3145,18 @@ function! s:RunEdit(state, tmp, job) abort let file = FugitiveVimPath(readfile(sentinel, '', 1)[0]) exe substitute(a:state.mods, '\', '-tab', 'g') 'keepalt split' s:fnameescape(file) set bufhidden=wipe - let s:edit_jobs[bufnr('')] = [a:state, a:tmp, a:job, sentinel] + let bufnr = bufnr('') + let s:edit_jobs[bufnr] = [a:state, a:tmp, a:job, sentinel] call fugitive#DidChange(a:state.git_dir) + if bufnr == bufnr('') && !exists('g:fugitive_event') + try + let g:fugitive_event = a:state.git_dir + let g:fugitive_result = a:state + exe s:DoAutocmd('User FugitiveEditor') + finally + unlet! g:fugitive_event g:fugitive_result + endtry + endif return 1 endfunction diff --git a/doc/fugitive.txt b/doc/fugitive.txt index 0952d0f..f089d74 100644 --- a/doc/fugitive.txt +++ b/doc/fugitive.txt @@ -656,6 +656,10 @@ FugitiveIndex After loading the |fugitive-summary| buffer. FugitivePager After loading a temp file created by a command like :Git --paginate or :Git blame. + *User_FugitiveEditor* +FugitiveEditor After a :Git command (e.g., :Git commit) edits a file + (e.g., the commit message). + *User_FugitiveChanged* FugitiveChanged After any event which can potentially change the repository, for example, any invocation of |:Git|.