戻る

VSCodeでシステムのSolargraphを使うときのメモ

結論

先に結論を書いておくと、以下のようにsettings.jsonに書けば解決した。

{
    // 省略
    "solargraph.useBundler": false,
    "solargraph.commandPath": "/usr/local/lib/ruby/gems/3.1.0/bin/solargraph",
    // 省略
}

結論に至るまで

VSCodeでRuby Solargraphという拡張を使ってSolargraph使おうとしたら以下のようなエラーが表示された。

Solargraph gem not found. Run `gem install solargraph` or update your Gemfile.

Ruby初心者なので意味がわからず、とりあえず言われた通りのコマンドを実行してインストールしてみた。 が、やはり同じエラーが出る。

パスが通っていないから? と思い以下のような感じでパスを通した。

# ~/.zshrc
export PATH="/usr/local/lib/ruby/gems/3.1.0/bin:$PATH"

これでシェルで直接 solargraph を実行することはできるようになった。それでもVSCode上ではエラーになる。

色々調べたら、プロジェクトではなくシステムにインストールしてあるSolargraphを使いたい場合は、solargraph.useBundler という設定値にfalseを渡してやる必要があるようだ。 なので、settings.jsonに以下のように書いてみた。

{
    // 省略
    "solargraph.useBundler": false,
    // 省略
}

でもやっぱりだめ。さらにググると、solargraph.commandPath なる設定項目もあるらしい。これが怪しそう。なので、ローカルに入ってるSolargarphのパスを直接指定。

{
    // 省略
    "solargraph.useBundler": false,
    "solargraph.commandPath": "/usr/local/lib/ruby/gems/3.1.0/bin/solargraph",
    // 省略
}

動くようになった。

本来はプロジェクトごとにRubyのバージョンも違うだろうし、プロジェクト単位でSolargraphをインストールして使う想定なのだろうが、ちょっとしたスクリプトを書きたい場合などにはシステム側のRubyを使うこともある。頻繁にある。 なので基本はグローバルにインストールされてるSolargraphを使うことにしていきたいと思う。

newnakashimaのBlog