diff options
author | Alex Genco <alexgenco@gmail.com> | 2016-03-10 18:56:47 -0800 |
---|---|---|
committer | Alex Genco <alexgenco@gmail.com> | 2016-03-10 19:01:44 -0800 |
commit | 3cb9970acf935c1b8627cfd244757b68989ad146 (patch) | |
tree | b082163cf8ea4d43702114592323c46cef709057 /runtime/autoload/provider/ruby.vim | |
parent | bb020df0f52c3eec6cb84ce1a786fa3a90904815 (diff) | |
download | rneovim-3cb9970acf935c1b8627cfd244757b68989ad146.tar.gz rneovim-3cb9970acf935c1b8627cfd244757b68989ad146.tar.bz2 rneovim-3cb9970acf935c1b8627cfd244757b68989ad146.zip |
Ruby remote plugin support
Diffstat (limited to 'runtime/autoload/provider/ruby.vim')
-rw-r--r-- | runtime/autoload/provider/ruby.vim | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/runtime/autoload/provider/ruby.vim b/runtime/autoload/provider/ruby.vim new file mode 100644 index 0000000000..aad8c09d28 --- /dev/null +++ b/runtime/autoload/provider/ruby.vim @@ -0,0 +1,34 @@ +" The Ruby provider helper +if exists('s:loaded_ruby_provider') + finish +endif + +let s:loaded_ruby_provider = 1 + +function! provider#ruby#Require(host) abort + " Collect registered Ruby plugins into args + let args = [] + let ruby_plugins = remote#host#PluginsForHost(a:host.name) + + for plugin in ruby_plugins + call add(args, plugin.path) + endfor + + try + let channel_id = rpcstart(provider#ruby#Prog(), args) + + if rpcrequest(channel_id, 'poll') == 'ok' + return channel_id + endif + catch + echomsg v:throwpoint + echomsg v:exception + endtry + + throw remote#host#LoadErrorForHost(a:host.orig_name, + \ '$NVIM_RUBY_LOG_FILE') +endfunction + +function! provider#ruby#Prog() abort + return 'neovim-ruby-host' +endfunction |