Resize EDITOR window automatically when necessary

Resolves: https://github.com/tpope/vim-fugitive/issues/1907
This commit is contained in:
Tim Pope
2021-12-23 14:27:51 -05:00
parent ab57abf1d0
commit da30818d17

View File

@@ -3269,7 +3269,17 @@ function! s:RunEdit(state, tmp, job) abort
call remove(a:state, 'request')
let sentinel = a:state.file . '.edit'
let file = FugitiveVimPath(readfile(sentinel, '', 1)[0])
exe substitute(a:state.mods, '\<tab\>', '-tab', 'g') 'keepalt split' s:fnameescape(file)
try
if !&equalalways && a:state.mods !~# '\<tab\>' && 3 > (a:state.mods =~# '\<vert' ? winwidth(0) : winheight(0))
let noequalalways = 1
setglobal equalalways
endif
exe substitute(a:state.mods, '\<tab\>', '-tab', 'g') 'keepalt split' s:fnameescape(file)
finally
if exists('l:noequalalways')
setglobal noequalalways
endif
endtry
set bufhidden=wipe
let bufnr = bufnr('')
let s:edit_jobs[bufnr] = [a:state, a:tmp, a:job, sentinel]
@@ -6494,7 +6504,7 @@ function! fugitive#Diffsplit(autodir, keepfocus, mods, arg, ...) abort
return 'echoerr ' . string(v:exception)
finally
if exists('l:equalalways')
let &l:equalalways = equalalways
let &g:equalalways = equalalways
endif
if exists('diffopt')
let &diffopt = diffopt