mirror of
https://github.com/tpope/vim-fugitive.git
synced 2025-11-10 04:23:46 -05:00
Pass private job state to s:RunWait()
This commit is contained in:
@@ -2367,13 +2367,13 @@ function! s:RunFinished(state) abort
|
|||||||
call fugitive#ReloadStatus(a:state.dir, 1)
|
call fugitive#ReloadStatus(a:state.dir, 1)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:RunEdit(state, job) abort
|
function! s:RunEdit(state, tmp, job) abort
|
||||||
if get(a:state, 'request', '') == 'edit'
|
if get(a:state, 'request', '') == 'edit'
|
||||||
call remove(a:state, 'request')
|
call remove(a:state, 'request')
|
||||||
let file = FugitiveVimPath(readfile(a:state.file . '.edit')[0])
|
let file = FugitiveVimPath(readfile(a:state.file . '.edit')[0])
|
||||||
exe substitute(a:state.mods, '\<tab\>', '-tab', 'g') 'keepalt split' s:fnameescape(file)
|
exe substitute(a:state.mods, '\<tab\>', '-tab', 'g') 'keepalt split' s:fnameescape(file)
|
||||||
set bufhidden=wipe
|
set bufhidden=wipe
|
||||||
let s:edit_jobs[bufnr('')] = [a:state, a:job]
|
let s:edit_jobs[bufnr('')] = [a:state, a:tmp, a:job]
|
||||||
call fugitive#ReloadStatus(a:state.dir, 1)
|
call fugitive#ReloadStatus(a:state.dir, 1)
|
||||||
return 1
|
return 1
|
||||||
endif
|
endif
|
||||||
@@ -2437,7 +2437,7 @@ endfunction
|
|||||||
if !exists('s:edit_jobs')
|
if !exists('s:edit_jobs')
|
||||||
let s:edit_jobs = {}
|
let s:edit_jobs = {}
|
||||||
endif
|
endif
|
||||||
function! s:RunWait(state, job) abort
|
function! s:RunWait(state, tmp, job) abort
|
||||||
let finished = 0
|
let finished = 0
|
||||||
try
|
try
|
||||||
while get(a:state, 'request', '') !=# 'edit' && (type(a:job) == type(0) ? jobwait([a:job], 1)[0] == -1 : ch_status(a:job) !=# 'closed' || job_status(a:job) ==# 'run')
|
while get(a:state, 'request', '') !=# 'edit' && (type(a:job) == type(0) ? jobwait([a:job], 1)[0] == -1 : ch_status(a:job) !=# 'closed' || job_status(a:job) ==# 'run')
|
||||||
@@ -2467,7 +2467,7 @@ function! s:RunWait(state, job) abort
|
|||||||
endwhile
|
endwhile
|
||||||
sleep 1m
|
sleep 1m
|
||||||
echo
|
echo
|
||||||
call s:RunEdit(a:state, a:job)
|
call s:RunEdit(a:state, a:tmp, a:job)
|
||||||
let finished = 1
|
let finished = 1
|
||||||
finally
|
finally
|
||||||
if !finished
|
if !finished
|
||||||
@@ -2491,11 +2491,11 @@ if !exists('s:resume_queue')
|
|||||||
endif
|
endif
|
||||||
function! fugitive#Resume() abort
|
function! fugitive#Resume() abort
|
||||||
while len(s:resume_queue)
|
while len(s:resume_queue)
|
||||||
let [state, job] = remove(s:resume_queue, 0)
|
let [state, tmp, job] = remove(s:resume_queue, 0)
|
||||||
if filereadable(state.file . '.edit')
|
if filereadable(state.file . '.edit')
|
||||||
call delete(state.file . '.edit')
|
call delete(state.file . '.edit')
|
||||||
endif
|
endif
|
||||||
call s:RunWait(state, job)
|
call s:RunWait(state, tmp, job)
|
||||||
endwhile
|
endwhile
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
@@ -2715,7 +2715,7 @@ function! fugitive#Command(line1, line2, range, bang, mods, arg) abort
|
|||||||
\ }))
|
\ }))
|
||||||
endif
|
endif
|
||||||
let state.job = job
|
let state.job = job
|
||||||
call s:RunWait(state, job)
|
call s:RunWait(state, tmp, job)
|
||||||
return 'silent checktime' . after
|
return 'silent checktime' . after
|
||||||
elseif pager is# 1
|
elseif pager is# 1
|
||||||
let pre = s:BuildEnvPrefix(env)
|
let pre = s:BuildEnvPrefix(env)
|
||||||
|
|||||||
Reference in New Issue
Block a user