]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(ruby): Update ftplugin and omni-complete (#13805)
authordkearns <dougkearns@gmail.com>
Mon, 1 Jan 2024 17:58:57 +0000 (04:58 +1100)
committerGitHub <noreply@github.com>
Mon, 1 Jan 2024 17:58:57 +0000 (18:58 +0100)
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/autoload/rubycomplete.vim
runtime/ftplugin/ruby.vim

index 3677b25aebac72083c452692fe4e1cec6d04bc87..6ead0fd83756317cc3e9f6149fdf22e5d5bc4ac3 100644 (file)
@@ -2,8 +2,7 @@
 " Language:            Ruby
 " Maintainer:          Mark Guzman <segfault@hasno.info>
 " URL:                 https://github.com/vim-ruby/vim-ruby
-" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
-" Last Change:         2020 Apr 12
+" Last Change:         2023 Dec 31
 " ----------------------------------------------------------------------------
 "
 " Ruby IRB/Complete author: Keiju ISHITSUKA(keiju@ishitsuka.com)
@@ -490,7 +489,7 @@ class VimRubyCompletion
         trail = "%s%s" % [ dir, sub ]
         tcfg = "%sconfig" % trail
 
-        if File.exists?( tcfg )
+        if File.exist?( tcfg )
           rails_base = trail
           break
         end
@@ -503,7 +502,7 @@ class VimRubyCompletion
 
     bootfile = rails_base + "config/boot.rb"
     envfile = rails_base + "config/environment.rb"
-    if File.exists?( bootfile ) && File.exists?( envfile )
+    if File.exist?( bootfile ) && File.exist?( envfile )
       begin
         require bootfile
         require envfile
index b61c1765d97ee9969fd98ebd24c6fc3b0e01eb74..b07ed5318815240ddb64527e7b066c48f3f0c06e 100644 (file)
@@ -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