aboutsummaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/autoload/health/provider.vim25
-rw-r--r--runtime/autoload/provider/node.vim9
2 files changed, 21 insertions, 13 deletions
diff --git a/runtime/autoload/health/provider.vim b/runtime/autoload/health/provider.vim
index 205a23dcbd..39e592c471 100644
--- a/runtime/autoload/health/provider.vim
+++ b/runtime/autoload/health/provider.vim
@@ -253,14 +253,18 @@ function! s:check_python(version) abort
if !empty(pyenv)
if empty(pyenv_root)
- call health#report_warn(
- \ 'pyenv was found, but $PYENV_ROOT is not set.',
- \ ['Did you follow the final install instructions?',
- \ 'If you use a shell "framework" like Prezto or Oh My Zsh, try without.',
- \ 'Try a different shell (bash).']
+ call health#report_info(
+ \ 'pyenv was found, but $PYENV_ROOT is not set. `pyenv root` will be used.'
+ \ .' If you run into problems, try setting $PYENV_ROOT explicitly.'
\ )
+ let pyenv_root = s:trim(s:system([pyenv, 'root']))
+ endif
+
+ if !isdirectory(pyenv_root)
+ call health#report_error('Invalid pyenv root: '.pyenv_root)
else
- call health#report_ok(printf('pyenv found: "%s"', pyenv))
+ call health#report_info(printf('pyenv: %s', pyenv))
+ call health#report_info(printf('pyenv root: %s', pyenv_root))
endif
endif
@@ -451,10 +455,11 @@ function! s:check_ruby() abort
let host = provider#ruby#Detect()
if empty(host)
- call health#report_warn('Missing "neovim" gem.',
- \ ['Run in shell: gem install neovim',
- \ 'Is the gem bin directory in $PATH? Check `gem environment`.',
- \ 'If you are using rvm/rbenv/chruby, try "rehashing".'])
+ call health#report_warn("`neovim-ruby-host` not found.",
+ \ ['Run `gem install neovim` to ensure the neovim RubyGem is installed.',
+ \ 'Run `gem environment` to ensure the gem bin directory is in $PATH.',
+ \ 'If you are using rvm/rbenv/chruby, try "rehashing".',
+ \ 'See :help g:ruby_host_prog for non-standard gem installations.'])
return
endif
call health#report_info('Host: '. host)
diff --git a/runtime/autoload/provider/node.vim b/runtime/autoload/provider/node.vim
index f75d2632be..4e737fb51c 100644
--- a/runtime/autoload/provider/node.vim
+++ b/runtime/autoload/provider/node.vim
@@ -6,15 +6,18 @@ let g:loaded_node_provider = 1
let s:job_opts = {'rpc': v:true, 'on_stderr': function('provider#stderr_collector')}
function! s:is_minimum_version(version, min_major, min_minor) abort
- let nodejs_version = a:version
- if !a:version
+ if empty(a:version)
let nodejs_version = get(split(system(['node', '-v']), "\n"), 0, '')
if v:shell_error || nodejs_version[0] !=# 'v'
return 0
endif
+ else
+ let nodejs_version = a:version
endif
+ " Remove surrounding junk. Example: 'v4.12.0' => '4.12.0'
+ let nodejs_version = matchstr(nodejs_version, '\(\d\.\?\)\+')
" [major, minor, patch]
- let v_list = !!a:version ? a:version : split(nodejs_version[1:], '\.')
+ let v_list = split(nodejs_version, '\.')
return len(v_list) == 3
\ && ((str2nr(v_list[0]) > str2nr(a:min_major))
\ || (str2nr(v_list[0]) == str2nr(a:min_major)