vimsuite/vimfiles/plugin/merginal.vim
2015-02-11 11:43:57 +01:00

52 lines
2.0 KiB
VimL
Executable File

function! s:openBasedOnMergeMode() abort
if merginal#isRebaseMode()
call merginal#openRebaseConflictsBuffer()
elseif merginal#isRebaseAmendMode()
call merginal#openRebaseAmendBuffer()
elseif merginal#isMergeMode()
call merginal#openMergeConflictsBuffer()
else
call merginal#openBranchListBuffer()
endif
endfunction
function! s:toggleBasedOnMergeMode() abort
let l:repo=fugitive#repo()
let l:merginalWindowNumber=bufwinnr('Merginal:')
if 0<=l:merginalWindowNumber
let l:merginalBufferNumber=winbufnr(l:merginalWindowNumber)
let l:merginalBufferName=bufname(l:merginalBufferNumber)
"If we are not on the same dir we need to reload the merginal buffer
"anyways:
if getbufvar(l:merginalBufferNumber,'merginal_repo').dir()==l:repo.dir()
if merginal#isRebaseMode()
if 'Merginal:Rebase'==l:merginalBufferName
call merginal#closeMerginalBuffer()
return
endif
elseif merginal#isRebaseAmendMode()
if 'Merginal:RebaseAmend'==l:merginalBufferName
call merginal#closeMerginalBuffer()
return
endif
elseif merginal#isMergeMode()
if 'Merginal:Conflicts'==l:merginalBufferName
call merginal#closeMerginalBuffer()
return
endif
else
if 'Merginal:Branches'==l:merginalBufferName
call merginal#closeMerginalBuffer()
return
endif
end
endif
endif
call s:openBasedOnMergeMode()
endfunction
autocmd User Fugitive command! -buffer -nargs=0 Merginal call s:openBasedOnMergeMode()
autocmd User Fugitive command! -buffer -nargs=0 MerginalToggle call s:toggleBasedOnMergeMode()
autocmd User Fugitive command! -buffer -nargs=0 MerginalClose call merginal#closeMerginalBuffer()