From 48dc1f3f90c6bbebcaa93ecf3348648f45c45239 Mon Sep 17 00:00:00 2001 From: James McCoy Date: Fri, 16 Feb 2018 13:33:07 -0500 Subject: provider: ruby: Use stderr_buffered to collect stderr --- runtime/autoload/provider/ruby.vim | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/runtime/autoload/provider/ruby.vim b/runtime/autoload/provider/ruby.vim index 3fb65fecdf..3d1f7a4138 100644 --- a/runtime/autoload/provider/ruby.vim +++ b/runtime/autoload/provider/ruby.vim @@ -4,16 +4,7 @@ if exists('g:loaded_ruby_provider') endif let g:loaded_ruby_provider = 1 -let s:stderr = {} -let s:job_opts = {'rpc': v:true} - -function! s:job_opts.on_stderr(chan_id, data, event) abort - let stderr = get(s:stderr, a:chan_id, ['']) - let last = remove(stderr, -1) - let a:data[0] = last.a:data[0] - call extend(stderr, a:data) - let s:stderr[a:chan_id] = stderr -endfunction +let s:job_opts = {'rpc': v:true, 'stderr_buffered': v:true} function! provider#ruby#Detect() abort if exists("g:ruby_host_prog") @@ -36,14 +27,15 @@ function! provider#ruby#Require(host) abort endfor try - let channel_id = jobstart(prog, s:job_opts) + let job = copy(s:job_opts) + let channel_id = jobstart(prog, job) if rpcrequest(channel_id, 'poll') ==# 'ok' return channel_id endif catch echomsg v:throwpoint echomsg v:exception - for row in get(s:stderr, channel_id, []) + for row in get(job, 'stderr', []) echomsg row endfor endtry -- cgit