Avoid non-file windows for :Gstatus open
Closes https://github.com/tpope/vim-fugitive/issues/1002
This commit is contained in:
parent
614e20bb65
commit
6faf165ef2
@ -1,6 +1,6 @@
|
|||||||
" fugitive.vim - A Git wrapper so awesome, it should be illegal
|
" fugitive.vim - A Git wrapper so awesome, it should be illegal
|
||||||
" Maintainer: Tim Pope <http://tpo.pe/>
|
" Maintainer: Tim Pope <http://tpo.pe/>
|
||||||
" Version: 2.2
|
" Version: 2.3
|
||||||
" GetLatestVimScripts: 2975 1 :AutoInstall: fugitive.vim
|
" GetLatestVimScripts: 2975 1 :AutoInstall: fugitive.vim
|
||||||
|
|
||||||
if exists('g:loaded_fugitive') || &cp
|
if exists('g:loaded_fugitive') || &cp
|
||||||
@ -1420,17 +1420,23 @@ endfunction
|
|||||||
|
|
||||||
" Section: Gedit, Gpedit, Gsplit, Gvsplit, Gtabedit, Gread
|
" Section: Gedit, Gpedit, Gsplit, Gvsplit, Gtabedit, Gread
|
||||||
|
|
||||||
|
function! s:UsableWin(nr) abort
|
||||||
|
return a:nr && !getwinvar(a:nr, '&previewwindow') &&
|
||||||
|
\ index(['nofile','help','quickfix'], getbufvar(winbufnr(a:nr), '&buftype')) < 0
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! s:Edit(cmd,bang,...) abort
|
function! s:Edit(cmd,bang,...) abort
|
||||||
let buffer = s:buffer()
|
let buffer = s:buffer()
|
||||||
if a:cmd !~# 'read'
|
if a:cmd !~# 'read'
|
||||||
if &previewwindow && getbufvar('','fugitive_type') ==# 'index'
|
if &previewwindow && getbufvar('','fugitive_type') ==# 'index'
|
||||||
if winnr('$') == 1
|
let winnrs = filter([winnr('#')] + range(1, winnr('$')), 's:UsableWin(v:val)')
|
||||||
|
if len(winnrs)
|
||||||
|
exe winnrs[1].'wincmd w'
|
||||||
|
elseif winnr('$') == 1
|
||||||
let tabs = (&go =~# 'e' || !has('gui_running')) && &stal && (tabpagenr('$') >= &stal)
|
let tabs = (&go =~# 'e' || !has('gui_running')) && &stal && (tabpagenr('$') >= &stal)
|
||||||
execute 'rightbelow' (&lines - &previewheight - &cmdheight - tabs - 1 - !!&laststatus).'new'
|
execute 'rightbelow' (&lines - &previewheight - &cmdheight - tabs - 1 - !!&laststatus).'new'
|
||||||
elseif winnr('#')
|
|
||||||
wincmd p
|
|
||||||
else
|
else
|
||||||
wincmd w
|
rightbelow new
|
||||||
endif
|
endif
|
||||||
if &diff
|
if &diff
|
||||||
let mywinnr = winnr()
|
let mywinnr = winnr()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user