曖昧だったVSCodeへのsolargraphの導入について整理したのでまとめておきます。
結論
VSCodeでsolargraphを使うにあたって以下の2つが必要。
下記手順で導入、設定する。
- VSCode拡張機能
Ruby Solargraph
の導入 solargraph
gemの導入yard
gemを使ってYARDドキュメントを作成- VSCodeのsettings.jsonに設定の追加
solargraphとは?
Ruby用のコード補完、関数の説明などのインテリセンスが使えるようになるツール。
castwide/solargraph: A Ruby language server.
動作についてはSolargraph公式を見てもらうとイメージしやすいかもしれない。
1. VSCode拡張機能 Ruby Solargraph導入
solargraph gemを使うために必要。下記のInstall
をクリックするとVSCodeにインストールできる。
Ruby Solargraph - Visual Studio Marketplace
2. solargraph gemの導入
gemのには次の2つの方法があります。
- bundlerを使いプロジェクト毎にインストールする
- グローバルにインストールする
私はプログラミングスクールの課題に不必要なgemをGemfileに書きたくなかったのでグローバルにインストールする方法で行いました。
bundlerを使いプロジェクト毎にインストールする方法
Gemfileにsolargraphを追記し、インストールします。
gem 'solargraph', group: :development
$ cd project_path $ bundle install
グローバルにインストールする方法
gem install
コマンドでグローバルにインストールします。
$ gem install solargraph
3. yard gemを使ってYARDドキュメントを作成
yard gemとはRubyやRailsのドキュメント作成ツールです。 作成したドキュメントをsolargraphが参照してインテリセンスを行うようです。 yard gemはsolargraph gemに付随してインストールされます。
参照するYARDドキュメントを作成します。 YARDドキュメントの作成方法はsolargraph gemのインストール方法の違いによって異なります。
solargraphをbundlerを使ってインストールした場合のYARDドキュメントの作成
プロジェクト毎のYARDドキュメントを作成します。
$ cd project_path $ bundle exec yard gems
solargraphをグローバルにインストールした場合のYARDドキュメント作成
グローバルで使用するYARDドキュメントを作成します。
$ yard gems
4. VSCodeのsettings.jsonに設定の追加
solargraphの動作設定を追加します。
ここもsolargraph gemのインストール方法によって異なります。
VSCodeの設定ファイルであるsettings.json
を開き設定を追加します。
solargraphをbundlerを使ってインストールした場合の動作設定
bundlerでインストールしたsolargraphのパスを調べる
$ cd project_path $ which solargraph # 表示されたパスをコピーしておく
bundlerでインストールされたsolargraph gemを使うように設定します。
// settings.json { "solargraph.useBundler": true, "solargraph.commandPath": '表示されたパスを指定' }
solargraphをグローバルにインストールした場合の動作設定
グローバルでインストールしたsolargraph gemを使うように設定します。
// settings.json { "solargraph.useBundler": false, }
この設定はデフォルトでfalse
に設定されていますがあえて明示的に設定しています。
共通のおすすめ設定
個人的におすすめの設定です。この部分はインストール方法に関係しない設定なのでお好みで追加してください。
{ "solargraph.diagnostics": true, "solargraph.autoformat": true, }
solargraph.autoformat
: 入力中に自動フォーマットを有効化
solargraph.formatting
: ドキュメントの書式設定を有効化、solargraphのフォーマットにRuboCopを使用
solargraph.autoformat
に関しては私の場合はrubocopを使っているので、他のフォーマッタを使用する場合には競合を加味した設定が別途必要そうです。
rubocop + Solargraph + VSCode設定 - 技術メモ
このあたりは他のツールとの兼ね合いもあるので別記事でまとめたいと思います。
まとめ
solargraphの設定について整理できたので良かった。環境が変わるとたまに出くわすsolargraph周りのエラーにもしっかり解決できるようになりたい。
参照
castwide/solargraph: A Ruby language server.
Solargraph: A Ruby Language Server
Ruby Solargraph - Visual Studio Marketplace
lsegal/yard: YARD is a Ruby Documentation tool. The Y stands for "Yay!"