はじめに
ポートフォリオ用のサービスをRailsで開発している際、VSCodeのコード補完がどうにも物足りないと感じていました。
Rubyの基本的なメソッドは補完されるものの、 Rails特有のモデルや関連付け、スコープなどに関する補完がほとんど効かず 、メソッド名をいちいち思い出したり、ドキュメントを確認したりする手間が発生していました。
「これでは開発効率が上がらない!」そう思い、何か良い方法はないかと調べていた時に出会ったのがSolargraphです。
Solargraphとは
ざっくりとご説明すると、Solargraphは、Rubyコードの静的解析を行い、その結果に基づいて強力なコード補完や型ヒント、リファクタリング支援などをVS Code(やその他のエディタ)に提供してくれます。
この記事では、実際にRailsでSolargraphを有効するまでに行った設定等をまとめてみました。もっと良い設定方法等あれば、コメントいただければ幸いです。
実行環境
- Ruby 3.4.3
- Rails 8.0.2
- Solargraph 0.56.0
- Solargraph-Rails 1.2.0
Solargraph と solargraph-rails Gem のインストール
Solargraphの機能を利用するには、まずその機能を提供するRuby gemをプロジェクトに追加する必要があります。特にRailsプロジェクトでは、Rails特有の動的なメソッド(モデルの関連付けやスコープなど)の補完を強化するために、solargraph-rails gemも一緒にインストールすることをおすすめします。
プロジェクトのGemfileに以下の記述を追加してください。開発時のみ必要なため、 developmentグループに入れます。
# Gemfile
group :development, :test do
gem 'solargraph'
gem 'solargraph-rails' # Rails固有の補完を強化
end
Gemfileへの追加が完了したら、bundle installを実行してgemをインストールします。
bundle install
プロジェクトにSolargraphの設定ファイルを生成
Solargraphがあなたのプロジェクトの構造を正確に理解し、より適切なコード補完を提供するためには、プロジェクト固有の設定ファイルが必要になります。
この設定ファイルは、solargraph initコマンドで簡単に生成できます。
プロジェクトのルートディレクトリで以下のコマンドを実行してください。
bundle exec solargraph init
このコマンドを実行すると、プロジェクトのルートに.solargraph.ymlというファイルが生成されます。
このファイルは、Solargraphの挙動をカスタマイズするためのもので、この後のステップで編集します。
.solargraph.ymlの編集
まず、先ほど生成された.solargraph.ymlファイルを開き、
plugins:セクションにsolargraph-railsを追加します。
# .solargraph.yml
plugins:
- solargraph-rails # この行を追加
pluguinsを設定することで、solargraph-railsがSolargraphに読み込まれ、Railsのモデルや関連付けといった動的な部分を含めた、より正確なコード補完を行えるようになります。
.solargraphのメタデータ生成
solargraph-railsプラグインを有効にした後、以下のコマンドを実行して、Railsプロジェクトのメタデータを生成します。
bundle exec solargraph bundle
このコマンドは、Railsプロジェクトのコードを解析し、solargraph-railsプラグインと連携して、Solargraphが利用できる形式でRails特有の動的なメソッドに関する情報を生成します。
この処理が完了することで、モデルの関連付けから生成されるメソッドや、マイグレーションファイルに基づいて生成されるカラム名なども、VS Codeで正確に補完されるようになります。
VSCodeの拡張機能をインストール
最後に、VS Code上でSolargraphの機能を利用するための拡張機能をインストールします。
インストール後、RailsプロジェクトのRubyファイル(例: app/models/user.rbなど)を開いて、実際にコード補完が効くようになったか確認してみましょう。
例えば、Userモデルのインスタンスを作成し、user.と入力した際に、関連付けで定義したメソッドやカラム名が候補として表示されれば成功です!
おわりに
Solargraphを導入することで、よりスムーズで快適なRails開発が可能になりました。正確な補完はタイピングの手間を省くだけでなく、メソッド名や引数を間違えるといった初歩的なミスも減らしてくれるため、結果として開発効率の向上に繋がると感じました。
この記事が、あなたのRails開発環境をさらに快適にする一助となれば幸いです。最後まで読んでいただきありがとうございました。
