diff options
author | dkearns <dougkearns@gmail.com> | 2024-01-02 04:58:57 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-01 18:58:57 +0100 |
commit | d08059ab48b822a25060b8a486085371ddeebcf7 (patch) | |
tree | 347137490e28dbe760f93ebb12a8a014e9c5398c /runtime/ftplugin | |
parent | 0ede5e361fba0254d454f61b0747b75a16a80bb5 (diff) |
runtime(ruby): Update ftplugin and omni-complete (#13805)
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'runtime/ftplugin')
-rw-r--r-- | runtime/ftplugin/ruby.vim | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/runtime/ftplugin/ruby.vim b/runtime/ftplugin/ruby.vim index b61c1765d9..b07ed53188 100644 --- a/runtime/ftplugin/ruby.vim +++ b/runtime/ftplugin/ruby.vim @@ -2,8 +2,7 @@ " Language: Ruby " Maintainer: Tim Pope <vimNOSPAM@tpope.org> " URL: https://github.com/vim-ruby/vim-ruby -" Release Coordinator: Doug Kearns <dougkearns@gmail.com> -" Last Change: 2023 Sep 1st +" Last Change: 2023 Dec 31 if (exists("b:did_ftplugin")) finish @@ -60,35 +59,38 @@ if !exists('g:ruby_version_paths') let g:ruby_version_paths = {} endif +let s:path_split = has('win32') ? ';' : ':' + function! s:query_path(root) abort - " Disabled by default for security reasons. - if !get(g:, 'ruby_exec', get(g:, 'plugin_exec', 0)) - return [] + " Disabled by default for security reasons. + if !get(g:, 'ruby_exec', get(g:, 'plugin_exec', 0)) || empty(a:root) + return map(split($RUBYLIB, s:path_split), 'v:val ==# "." ? "" : v:val') endif let code = "print $:.join %q{,}" - if &shell =~# 'sh' && empty(&shellxquote) - let prefix = 'env PATH='.shellescape($PATH).' ' - else - let prefix = '' - endif if &shellxquote == "'" - let path_check = prefix.'ruby --disable-gems -e "' . code . '"' + let args = ' --disable-gems -e "' . code . '"' else - let path_check = prefix."ruby --disable-gems -e '" . code . "'" + let args = " --disable-gems -e '" . code . "'" endif - let cd = haslocaldir() ? 'lcd' : 'cd' + let cd = haslocaldir() ? 'lcd' : exists(':tcd') && haslocaldir(-1) ? 'tcd' : 'cd' let cwd = fnameescape(getcwd()) try exe cd fnameescape(a:root) - let s:tmp_cwd = getcwd() - if (fnamemodify(exepath('ruby'), ':p:h') ==# cwd - \ && (index(split($PATH,has("win32")? ';' : ':'), s:tmp_cwd) == -1 || s:tmp_cwd == '.')) - let path = [] + for dir in split($PATH, s:path_split) + if dir !=# '.' && executable(dir . '/ruby') == 1 + let exepath = dir . '/ruby' + break + endif + endfor + if exists('l:exepath') + let path = split(system(exepath . args),',') + if v:shell_error + let path = [] + endif else - let path = split(system(path_check),',') + let path = [] endif - unlet! s:tmp_cwd exe cd cwd return path finally @@ -129,10 +131,8 @@ else if !exists('g:ruby_default_path') if has("ruby") && has("win32") ruby ::VIM::command( 'let g:ruby_default_path = split("%s",",")' % $:.join(%q{,}) ) - elseif executable('ruby') && !empty($HOME) - let g:ruby_default_path = s:query_path($HOME) else - let g:ruby_default_path = map(split($RUBYLIB,':'), 'v:val ==# "." ? "" : v:val') + let g:ruby_default_path = s:query_path($HOME) endif endif let s:ruby_paths = g:ruby_default_path |