diff options
author | Alex Genco <alexgenco@gmail.com> | 2017-06-03 17:19:49 -0700 |
---|---|---|
committer | Alex Genco <alexgenco@gmail.com> | 2017-06-17 08:20:00 -0700 |
commit | f400c6f05fb2adbc1cf47be761c3dbea3419806f (patch) | |
tree | b9d7ffe9089ff0d9cb37b8192a753c89cc3ca2e8 | |
parent | 826210a465f1b8bae2c6bc70ca73d610897d954c (diff) | |
download | rneovim-f400c6f05fb2adbc1cf47be761c3dbea3419806f.tar.gz rneovim-f400c6f05fb2adbc1cf47be761c3dbea3419806f.tar.bz2 rneovim-f400c6f05fb2adbc1cf47be761c3dbea3419806f.zip |
runtime: Allow overriding ruby host with g:ruby_host_prog
This allows users who have per-project Ruby versions (e.g. with `rvm`)
to pin to a particular gem installation.
For example: `let g:ruby_host_prog = 'rvm system do neovim-ruby-host'`
-rw-r--r-- | runtime/autoload/provider/ruby.vim | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/runtime/autoload/provider/ruby.vim b/runtime/autoload/provider/ruby.vim index c8ede20a75..91b7fb9f2c 100644 --- a/runtime/autoload/provider/ruby.vim +++ b/runtime/autoload/provider/ruby.vim @@ -16,7 +16,11 @@ function! s:job_opts.on_stderr(chan_id, data, event) endfunction function! provider#ruby#Detect() abort - return exepath('neovim-ruby-host') + if exists("g:ruby_host_prog") + return g:ruby_host_prog + else + return exepath('neovim-ruby-host') + end endfunction function! provider#ruby#Prog() @@ -24,15 +28,15 @@ function! provider#ruby#Prog() endfunction function! provider#ruby#Require(host) abort - let args = [provider#ruby#Prog()] + let prog = provider#ruby#Prog() let ruby_plugins = remote#host#PluginsForHost(a:host.name) for plugin in ruby_plugins - call add(args, plugin.path) + let prog .= " " . shellescape(plugin.path) endfor try - let channel_id = jobstart(args, s:job_opts) + let channel_id = jobstart(prog, s:job_opts) if rpcrequest(channel_id, 'poll') ==# 'ok' return channel_id endif |