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

Fix neovim support

This commit is contained in:
wsdjeg 2017-12-02 00:38:54 +08:00
parent 817cf5ebd8
commit aa520a1c7d

View File

@ -10,6 +10,7 @@ let s:JOB = SpaceVim#api#import('job')
let s:BUFFER = SpaceVim#api#import('vim#buffer') let s:BUFFER = SpaceVim#api#import('vim#buffer')
let s:STRING = SpaceVim#api#import('data#string') let s:STRING = SpaceVim#api#import('data#string')
let s:runners = {} let s:runners = {}
let s:bufnr = 0 let s:bufnr = 0
@ -86,22 +87,53 @@ function! SpaceVim#plugins#runner#open() abort
call s:update_statusline() call s:update_statusline()
endif endif
endfunction endfunction
" @vimlint(EVL103, 1, a:job_id) " @vimlint(EVL103, 1, a:job_id)
" @vimlint(EVL103, 1, a:data) " @vimlint(EVL103, 1, a:data)
" @vimlint(EVL103, 1, a:event) " @vimlint(EVL103, 1, a:event)
function! s:on_stdout(job_id, data, event) abort
call s:BUFFER.buf_set_lines(s:bufnr, s:lines , s:lines + 1, 0, a:data)
let s:lines += len(a:data)
call s:update_statusline()
endfunction
function! s:on_stderr(job_id, data, event) abort let g:wsd = []
let s:status.has_errors = 1 if has('nvim') && exists('*chanclose')
call s:BUFFER.buf_set_lines(s:bufnr, s:lines , s:lines + 1, 0, a:data) let s:_out_data = ['']
let s:lines += len(a:data) function! s:on_stdout(job_id, data, event) abort
call s:update_statusline() let s:_out_data[-1] .= a:data[0]
endfunction call extend(s:_out_data, a:data[1:])
if s:_out_data[-1] == ''
call remove(s:_out_data, -1)
let lines = s:_out_data
else
let lines = s:_out_data
endif
if !empty(lines)
call add(g:wsd, lines)
call s:BUFFER.buf_set_lines(s:bufnr, s:lines , s:lines + 1, 0, lines)
endif
let s:lines += len(lines)
let s:_out_data = ['']
call s:update_statusline()
endfunction
let s:_err_data = ['']
function! s:on_stderr(job_id, data, event) abort
let s:status.has_errors = 1
call s:BUFFER.buf_set_lines(s:bufnr, s:lines , s:lines + 1, 0, a:data)
let s:lines += len(a:data)
call s:update_statusline()
endfunction
else
function! s:on_stdout(job_id, data, event) abort
call add(g:wsd, a:data)
call s:BUFFER.buf_set_lines(s:bufnr, s:lines , s:lines + 1, 0, a:data)
let s:lines += len(a:data)
call s:update_statusline()
endfunction
function! s:on_stderr(job_id, data, event) abort
let s:status.has_errors = 1
call s:BUFFER.buf_set_lines(s:bufnr, s:lines , s:lines + 1, 0, a:data)
let s:lines += len(a:data)
call s:update_statusline()
endfunction
endif
function! s:on_exit(job_id, data, event) abort function! s:on_exit(job_id, data, event) abort
let s:end_time = reltime(s:start_time) let s:end_time = reltime(s:start_time)