vscode-standard-ruby
でプリインストールのrubyで実行されてしまいパッケージマネージャーで関しているバージョンで実行されずLSPが落ちてしまいハマったので対応したことをメモ📝
事象
以下のようにターミナルで確認するとパッケージマネージャで管理している最新のRubyが利用されているが、
$ ruby -v ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-darwin22]
vscode-standard-ruby
のLSPの起動時に以下の通り謎にプリインストールのrubyが利用されてしまっており失敗していた。
[client] stderr: /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:283:in `find_spec_for_exe': Could not find 'bundler' (2.4.10) required by your /Users/morita.jun/Documents/repo/dogfeeds/Gemfile.lock. (Gem::GemNotFoundException)
解決方法
以下の設定が入っていたので削除し、ターミナルで利用しているもの(zsh
)が利用されるようにした。
- "terminal.integrated.defaultProfile.osx": "bash"
そしてVSCodeを単純に再起動するのではなく、ターミナルからcode
コマンドでVSCodeを再起動するとパッケージマネージャで管理しているRubyが利用されLSPの起動に成功した🤔
[server] Standard Ruby v1.32.0 LSP server initialized, pid 81066
"terminal.integrated.defaultProfile.osx": "bash"
の設定によりbashで最初起動してしまったので、zshのターミナルで再起動するまではパッケージマネージャーの設定が無いbashが利用されてしまいプリインストールのRubyが使われてしまっていたっぽい?(VSCodeは起動時のShellの設定を引き継ぐ?)