aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2017-12-18 01:48:30 +0100
committerGitHub <noreply@github.com>2017-12-18 01:48:30 +0100
commitcca6d4b2674304d544b3880a616fd2ca7df2b891 (patch)
treec185eb53bbcec6c89fba7122acad0bd03597d509
parent451ff827b801ea872d30c588e84fa9e83397f217 (diff)
downloadrneovim-cca6d4b2674304d544b3880a616fd2ca7df2b891.tar.gz
rneovim-cca6d4b2674304d544b3880a616fd2ca7df2b891.tar.bz2
rneovim-cca6d4b2674304d544b3880a616fd2ca7df2b891.zip
provider/nodejs: more robust version-check (#7738)
-rw-r--r--runtime/autoload/provider/node.vim9
1 files changed, 6 insertions, 3 deletions
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)