環境
関連ソフトウェア | バージョン |
---|---|
macOS | 12.6 |
NodeJS | 16.17.0 |
volta | 1.0.8 |
NeoVim | 8.0 |
結論
voltaを使うならvoltaのIssueにあるようにinit.vimに以下のような記述をしておく。
if executable('volta')
let g:node_host_prog = trim(system("volta which neovim-node-host"))
endif
経緯とシューティングタイムライン
仕事でNeoVimは一切使っていないのですが、休日趣味的に開いてみたらなんか様子がおかしい。
NeoVimを開いて:checkhealth provider
を入力すると、以下のようなメッセージ。
provider: health#provider#check
========================================================================
## Node.js provider (optional)
- INFO: Node.js: v16.17.0
- WARNING: Missing "neovim" npm (or yarn, pnpm) package.
- ADVICE:
- Run in shell: npm install -g neovim
- Run in shell (if you use yarn): yarn global add neovim
- Run in shell (if you use pnpm): pnpm install -g neovim
- You may disable this provider (and warning) by adding `let g:loaded_node_provider = 0` to your init.vim
npm install -g neovim
もしくはvolta install neovim
をしても変わらない。
ここで公式のHelpを読むと、
By default, Nvim searches for "neovim-node-host" using "npm root -g", which can be slow. To avoid this, set g:node_host_prog to the host path: Provider - Neovim docs
自分のvoltaを使ってる環境でnpm root -g
を実行すると以下のような結果に。
/Users/ike/.volta/tools/image/node/16.17.0/lib/node_modules
ということで、g:node_host_prog
オプションを設定したいが、うまくいかん。
そもそもvoltaを使ってグローバルインストールしたパッケージは/Users/ike/.volta/bin/volta-shim
にshimとしてインストールされ、シンボリックリンクが貼られる形をとっている。
こんな感じ
% ls -al ~/.volta/bin
drwxr-xr-x 12 ike staff 384 Oct 13 16:45 .
drwxr-xr-x 9 ike staff 288 Sep 10 23:29 ..
lrwxr-xr-x 1 ike staff 32 Sep 21 21:34 http-server -> /Users/ike/.volta/bin/volta-shim
lrwxr-xr-x 1 ike staff 32 Sep 15 23:36 memlab -> /Users/ike/.volta/bin/volta-shim
lrwxr-xr-x 1 ike staff 32 Oct 13 16:45 neovim-node-host -> /Users/ike/.volta/bin/volta-shim
lrwxr-xr-x 1 ike staff 32 Sep 10 23:29 node -> /Users/ike/.volta/bin/volta-shim
lrwxr-xr-x 1 ike staff 32 Sep 10 23:29 npm -> /Users/ike/.volta/bin/volta-shim
lrwxr-xr-x 1 ike staff 32 Sep 10 23:29 npx -> /Users/ike/.volta/bin/volta-shim
-rwxr-xr-x 1 ike staff 6522504 Jun 2 09:14 volta
-rwxr-xr-x 1 ike staff 4771376 Jun 2 09:14 volta-migrate
-rwxr-xr-x 1 ike staff 5522480 Jun 2 09:14 volta-shim
lrwxr-xr-x 1 ike staff 32 Sep 10 23:29 yarn -> /Users/ike/.volta/bin/volta-shim
わからん状態だったため、GitHubを探し、結論部分でも貼ったコードをコピペして終了。
Vim(NeoVim)わからん。
周辺用語
- Shim