Use dummy events to prevent "No matching autocommands" message

This list of events was hand-curated to eliminate events already defined
elsewhere in the autoload file.

Resolves: https://github.com/tpope/vim-fugitive/issues/1887
This commit is contained in:
Tim Pope
2021-11-16 16:08:51 -05:00
parent 69ae31d402
commit 2dfaf17f9e

View File

@@ -1448,7 +1448,7 @@ function! s:QuickfixStream(nr, event, title, cmd, first, mods, callback, ...) ab
let opts = {'title': a:title, 'context': {'items': []}} let opts = {'title': a:title, 'context': {'items': []}}
call s:QuickfixCreate(a:nr, opts) call s:QuickfixCreate(a:nr, opts)
let event = (a:nr < 0 ? 'c' : 'l') . 'fugitive-' . a:event let event = (a:nr < 0 ? 'c' : 'l') . 'fugitive-' . a:event
silent exe s:DoAutocmd('QuickFixCmdPre ' . event) exe s:DoAutocmd('QuickFixCmdPre ' . event)
let winnr = winnr() let winnr = winnr()
exe s:QuickfixOpen(a:nr, a:mods) exe s:QuickfixOpen(a:nr, a:mods)
if winnr != winnr() if winnr != winnr()
@@ -1475,7 +1475,7 @@ function! s:QuickfixStream(nr, event, title, cmd, first, mods, callback, ...) ab
lockvar opts.context.items lockvar opts.context.items
call s:QuickfixSet(a:nr, buffer, 'a') call s:QuickfixSet(a:nr, buffer, 'a')
silent exe s:DoAutocmd('QuickFixCmdPost ' . event) exe s:DoAutocmd('QuickFixCmdPost ' . event)
if a:first && len(s:QuickfixGet(a:nr)) if a:first && len(s:QuickfixGet(a:nr))
return (a:nr < 0 ? 'cfirst' : 'lfirst') return (a:nr < 0 ? 'cfirst' : 'lfirst')
else else
@@ -2487,6 +2487,9 @@ endfunction
augroup fugitive_dummy_events augroup fugitive_dummy_events
autocmd! autocmd!
autocmd User Fugitive* " autocmd User Fugitive* "
autocmd BufWritePre,FileWritePre,FileWritePost * "
autocmd BufNewFile * "
autocmd QuickfixCmdPre,QuickfixCmdPost * "
augroup END augroup END
function! s:ReplaceCmd(cmd) abort function! s:ReplaceCmd(cmd) abort
@@ -2593,7 +2596,7 @@ function! fugitive#BufReadStatus(...) abort
let amatch = s:Slash(expand('%:p')) let amatch = s:Slash(expand('%:p'))
unlet! b:fugitive_reltime b:fugitive_type unlet! b:fugitive_reltime b:fugitive_type
try try
silent doautocmd BufReadPre doautocmd BufReadPre
let config = fugitive#Config() let config = fugitive#Config()
let cmd = [fnamemodify(amatch, ':h')] let cmd = [fnamemodify(amatch, ':h')]
@@ -2842,7 +2845,7 @@ function! fugitive#BufReadStatus(...) abort
endif endif
setlocal nomodified readonly noswapfile setlocal nomodified readonly noswapfile
silent doautocmd BufReadPost doautocmd BufReadPost
setlocal nomodifiable setlocal nomodifiable
if &bufhidden ==# '' if &bufhidden ==# ''
setlocal bufhidden=delete setlocal bufhidden=delete
@@ -3005,10 +3008,10 @@ function! fugitive#BufReadCmd(...) abort
endif endif
if rev =~# '^:\d:' if rev =~# '^:\d:'
let &l:readonly = !filewritable(fugitive#Find('.git/index', dir)) let &l:readonly = !filewritable(fugitive#Find('.git/index', dir))
return 'silent doautocmd BufNewFile' return 'doautocmd BufNewFile'
else else
setlocal readonly nomodifiable setlocal readonly nomodifiable
return 'silent doautocmd BufNewFile|echo ' . string(error) return 'doautocmd BufNewFile|echo ' . string(error)
endif endif
elseif b:fugitive_type !~# '^\%(tag\|commit\|tree\|blob\)$' elseif b:fugitive_type !~# '^\%(tag\|commit\|tree\|blob\)$'
return "echoerr ".string("fugitive: unrecognized git type '".b:fugitive_type."'") return "echoerr ".string("fugitive: unrecognized git type '".b:fugitive_type."'")
@@ -3033,7 +3036,7 @@ function! fugitive#BufReadCmd(...) abort
if b:fugitive_type !=# 'blob' if b:fugitive_type !=# 'blob'
setlocal foldmarker=<<<<<<<<,>>>>>>>> setlocal foldmarker=<<<<<<<<,>>>>>>>>
endif endif
silent exe s:DoAutocmd('BufReadPre') exe s:DoAutocmd('BufReadPre')
if b:fugitive_type ==# 'tree' if b:fugitive_type ==# 'tree'
let b:fugitive_display_format = b:fugitive_display_format % 2 let b:fugitive_display_format = b:fugitive_display_format % 2
if b:fugitive_display_format if b:fugitive_display_format
@@ -3099,7 +3102,7 @@ function! fugitive#BufReadCmd(...) abort
setlocal modifiable setlocal modifiable
return 'silent ' . s:DoAutocmd('BufReadPost') . return s:DoAutocmd('BufReadPost') .
\ (modifiable ? '' : '|setl nomodifiable') . '|' . \ (modifiable ? '' : '|setl nomodifiable') . '|' .
\ call('s:DoAutocmd', events) \ call('s:DoAutocmd', events)
catch /^fugitive:/ catch /^fugitive:/
@@ -5662,7 +5665,7 @@ function! s:GrepSubcommand(line1, line2, range, bang, mods, options) abort
\ 'mods': s:Mods(a:mods), \ 'mods': s:Mods(a:mods),
\ 'file': s:Resolve(tempfile)} \ 'file': s:Resolve(tempfile)}
let event = listnr < 0 ? 'grep-fugitive' : 'lgrep-fugitive' let event = listnr < 0 ? 'grep-fugitive' : 'lgrep-fugitive'
silent exe s:DoAutocmd('QuickFixCmdPre ' . event) exe s:DoAutocmd('QuickFixCmdPre ' . event)
try try
if !quiet && &more if !quiet && &more
let more = 1 let more = 1
@@ -5686,7 +5689,7 @@ function! s:GrepSubcommand(line1, line2, range, bang, mods, options) abort
endif endif
endtry endtry
call s:RunFinished(state) call s:RunFinished(state)
silent exe s:DoAutocmd('QuickFixCmdPost ' . event) exe s:DoAutocmd('QuickFixCmdPost ' . event)
if quiet if quiet
let bufnr = bufnr('') let bufnr = bufnr('')
exe s:QuickfixOpen(listnr, a:mods) exe s:QuickfixOpen(listnr, a:mods)
@@ -6182,7 +6185,7 @@ function! fugitive#WriteCommand(line1, line2, range, bang, mods, arg, ...) abort
unlet! restorewinnr unlet! restorewinnr
let zero = fugitive#Find(':0:'.file) let zero = fugitive#Find(':0:'.file)
silent exe s:DoAutocmd('BufWritePost ' . s:fnameescape(zero)) exe s:DoAutocmd('BufWritePost ' . s:fnameescape(zero))
for tab in range(1,tabpagenr('$')) for tab in range(1,tabpagenr('$'))
for winnr in range(1,tabpagewinnr(tab,'$')) for winnr in range(1,tabpagewinnr(tab,'$'))
let bufnr = tabpagebuflist(tab)[winnr-1] let bufnr = tabpagebuflist(tab)[winnr-1]