commit ae8fed6dd33d5a8090315ec3c7125549d8b207df (tree)
parent 085060002106f591e399fc5a82fa3fafc7586bca
Author: rbong <r.l.bongers@gmail.com>
Date: Wed, 26 Dec 2018 08:39:34 -0500
Call Gcommit on Grebase --continue
On a rebase instruction that should result in an immediate commit,
the quickfix list will be closed and Gcommit will be called.
Diffstat:
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/autoload/fugitive.vim b/autoload/fugitive.vim
@@ -2293,6 +2293,13 @@ function! s:RemoteComplete(A, L, P) abort
return join(matches, "\n")
endfunction
+function! s:HasRebaseCommitCmd() abort
+ if !filereadable(b:git_dir . '/rebase-merge/amend') || !filereadable(b:git_dir . '/rebase-merge/done')
+ return 0
+ endif
+ return get(readfile(b:git_dir . '/rebase-merge/done'), -1, '') =~# '^[^e]'
+endfunction
+
function! fugitive#Cwindow() abort
if &buftype == 'quickfix'
cwindow
@@ -2330,6 +2337,7 @@ function! s:Merge(cmd, bang, mods, args) abort
\ . '%+ECannot %.%#: Your index contains uncommitted changes.,'
\ . '%+EThere is no tracking information for the current branch.,'
\ . '%+EYou are not currently on a branch. Please specify which,'
+ \ . '%+I%.%#git rebase --continue,'
\ . 'CONFLICT (%m): %f deleted in %.%#,'
\ . 'CONFLICT (%m): Merge conflict in %f,'
\ . 'CONFLICT (%m): Rename \"%f\"->%.%#,'
@@ -2368,10 +2376,13 @@ function! s:Merge(cmd, bang, mods, args) abort
execute cdback
endtry
call fugitive#ReloadStatus()
- if empty(filter(getqflist(),'v:val.valid'))
+ if empty(filter(getqflist(),'v:val.valid && v:val.type !=# "I"'))
if !had_merge_msg && filereadable(b:git_dir . '/MERGE_MSG')
cclose
return mods . 'Gcommit --no-status -n -t '.s:shellesc(b:git_dir . '/MERGE_MSG')
+ elseif a:cmd =~# '^rebase' && ' '.a:args =~# ' --continue' && s:HasRebaseCommitCmd()
+ cclose
+ return mods . 'Gcommit --amend'
endif
endif
let qflist = getqflist()