1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 03:00:04 +08:00

Fix job api for neovim job (#3740)

This commit is contained in:
Wang Shidong 2020-08-29 22:59:41 +08:00 committed by GitHub
parent 38b994813b
commit e31cf5db7e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -106,24 +106,32 @@ function! s:self.warp_nvim(argv, opts) abort dict
" @vimlint(EVL103, 1, a:event)
function! obj.__on_stdout(id, data, event) abort dict
if has_key(self._opts, 'on_stdout')
if a:data[-1] == ''
call self._opts.on_stdout(a:id, [self._eof . a:data[0]] + a:data[1:], 'stdout')
if a:data[-1] ==# '' && len(a:data) > 1
call self._opts.on_stdout(a:id, [self._eof . a:data[0]] + a:data[1:-2], 'stdout')
let self._eof = ''
else
elseif len(a:data) > 1
call self._opts.on_stdout(a:id, [self._eof . a:data[0]] + a:data[1:-2], 'stdout')
let self._eof = a:data[-1]
elseif len(a:data) ==# 1 && a:data[-1] ==# '' && !empty(self._eof)
call self._opts.on_stdout(a:id, [self._eof], 'stdout')
elseif len(a:data) ==# 1 && a:data[-1] !=# ''
let self._eof .= a:data[-1]
endif
endif
endfunction
function! obj.__on_stderr(id, data, event) abort dict
if has_key(self._opts, 'on_stderr')
if a:data[-1] == ''
call self._opts.on_stderr(a:id, [self._eof . a:data[0]] + a:data[1:], 'stderr')
if a:data[-1] ==# '' && len(a:data) > 1
call self._opts.on_stderr(a:id, [self._eof . a:data[0]] + a:data[1:-2], 'stderr')
let self._eof = ''
else
elseif len(a:data) > 1
call self._opts.on_stderr(a:id, [self._eof . a:data[0]] + a:data[1:-2], 'stderr')
let self._eof = a:data[-1]
elseif len(a:data) ==# 1 && a:data[-1] ==# '' && !empty(self._eof)
call self._opts.on_stderr(a:id, [self._eof], 'stderr')
elseif len(a:data) ==# 1 && a:data[-1] !=# ''
let self._eof .= a:data[-1]
endif
endif
endfunction