Vim: only invoke async out handler when job succeeded.

This makes the plugin use Vim the same was as Neovim in terms of
invoking callback handlers.
This commit is contained in:
Andy Stewart
2018-11-17 17:13:13 +00:00
parent 32d53f134a
commit da91d44889

View File

@@ -84,6 +84,17 @@ function! s:on_stderr_vim(channel, _data) dict abort
endtry
endfunction
function! s:on_exit_vim(_channel) dict abort
call self.handler.out(self.buffer, join(self.stdoutbuffer, "\n"))
function! s:on_exit_vim(channel) dict abort
let job = ch_getjob(a:channel)
while 1
if job_status(job) == 'dead'
let exit_code = job_info(job).exitval
break
endif
sleep 5m
endwhile
if !exit_code
call self.handler.out(self.buffer, join(self.stdoutbuffer, "\n"))
endif
endfunction