aboutsummaryrefslogtreecommitdiff
path: root/runtime/autoload/provider
diff options
context:
space:
mode:
authorPercy Ma <kecrily@gmail.com>2022-08-01 22:21:54 +0800
committerGitHub <noreply@github.com>2022-08-01 07:21:54 -0700
commitc6181a672a2fdb2cb89ddf85b5d6ab15b10a0996 (patch)
tree55fefe96a8a421e36e832745bdab544baadbd493 /runtime/autoload/provider
parent8d1c55e4224fc990d18409905aeb51d54d9d78cb (diff)
downloadrneovim-c6181a672a2fdb2cb89ddf85b5d6ab15b10a0996.tar.gz
rneovim-c6181a672a2fdb2cb89ddf85b5d6ab15b10a0996.tar.bz2
rneovim-c6181a672a2fdb2cb89ddf85b5d6ab15b10a0996.zip
feat(node): add pnpm support #19461
Diffstat (limited to 'runtime/autoload/provider')
-rw-r--r--runtime/autoload/provider/node.vim14
1 files changed, 14 insertions, 0 deletions
diff --git a/runtime/autoload/provider/node.vim b/runtime/autoload/provider/node.vim
index 5079c07d8c..45b1dd4fd7 100644
--- a/runtime/autoload/provider/node.vim
+++ b/runtime/autoload/provider/node.vim
@@ -82,6 +82,13 @@ function! provider#node#Detect() abort
let yarn_opts.job_id = jobstart('yarn global dir', yarn_opts)
endif
+ let pnpm_opts = {}
+ if executable('pnpm')
+ let pnpm_opts = deepcopy(s:NodeHandler)
+ let pnpm_opts.entry_point = '/neovim/bin/cli.js'
+ let pnpm_opts.job_id = jobstart('pnpm --loglevel silent root -g', pnpm_opts)
+ endif
+
" npm returns the directory faster, so let's check that first
if !empty(npm_opts)
let result = jobwait([npm_opts.job_id])
@@ -97,6 +104,13 @@ function! provider#node#Detect() abort
endif
endif
+ if !empty(pnpm_opts)
+ let result = jobwait([pnpm_opts.job_id])
+ if result[0] == 0 && pnpm_opts.result != ''
+ return [pnpm_opts.result, '']
+ endif
+ endif
+
return ['', 'failed to detect node']
endfunction