📖

Rubyプロジェクトに「solargraph + rubocop」を入れる

3 min read

内容

Rubyプロジェクトでの開発を効率化させるために、
コード自動補完ツール「solargraph」と、静的コード解析ツール「rubocop」を入れてみる。

また、開発エディタは「VSCode」を想定している。

環境

  • macOS Catalina 10.15.7
  • ruby 3.0.0p0
  • bundler 2.2.11
  • vscode 1.53.2

実施手順

Gemのインストール

今回は、bundlerを用いてプロジェクト内に対象Gemパッケージをインストールする。

プロジェクトのルートディレクトリに移動

$ cd [project_root_dir_path]

GemfileにGemを追加

以下の様に、GemfileにsolargraphとrubocopのGemパッケージ名を追加する。

Gemfile

group :development, :test do
    gem 'rubocop', require: false
    gem 'solargraph', require: false
end

require: falseとしているのは、アプリ側で一括でGemをImportしようとするときに、
falseとなっているGemはImportしないためである。

また、もしまだGemfileを作成していなければ、
以下の様にbundle initを実行しGemfileを作成してあげる。

$ bundle init
$ bundle config set --local path 'vendor/bundle'

インストールの実行

プロジェクトルートであることを確認し、以下を実行する。

$ bundle install

これでプロジェクト内の./vendor/bundle配下に対象のGemパッケージがインストールされる。

パッケージの確認

正しくインストールされていることを確認する。

$ bundle list | grep solargraph
  * solargraph (0.40.3)
$ bundle list | grep rubocop
  * rubocop (1.10.0)
  * rubocop-ast (1.4.1)

VSCodeプラグインのインストール

VSCodeでsolargraphを有効にするために、以下のプラグインをインストールする。

https://marketplace.visualstudio.com/items?itemName=castwide.solargraph

VSCodeの「Extensions」から、検索窓に「solargraph」と入力すると候補として出てくるので、
そちらをインストールする。

bundler経由でのsolargraph有効化

今回は、bundlerでプロジェクト内にインストールしたsolargraphを使って
コード補完を実現したいので、VSCodeのプラグインがsolargraphを適切に見つけられる様に、
プロジェクト内にあるsolargraphの実行ファイルへのパスを設定してあげる。

設定対象のファイルは、settings.jsonである。

これをプロジェクトルートの.vscodeディレクトリ配下に配置する。

$ cd [project_root_dir_path]
$ mkdir .vscode
$ touch .vscode/settings.json

そして、settings.jsonに以下の内容を記述する。

settings.json

{
    "solargraph.useBundler": true,
    "solargraph.bundlerPath": "$HOME/.rbenv/versions/3.0.0/bin/bundler",
    "ruby.useBundler": true,
    "ruby.lint": {
        "rubocop": true
    }
}

注意
上の$HOMEは、直接$HOMEで指定されている絶対パスを記載する。
例えば$HOMEが以下のような場合、

$ echo $HOME
/Users/massu/

以下のように記載する。

...
"solargraph.bundlerPath": "/Users/massu/.rbenv/versions/3.0.0/bin/bundler",
...

動作確認

ここまでの状態で、プロジェクト内に適当な名前でRubyファイルを作成する。
今回は以下の様にsample.rbというファイルを作成する。

$ touch sample.rb

そして、プロジェクトルートでVSCodeを起動する。

$ code .

solargraphの確認

VSCodeのエディタが立ち上がり、sample.rbを開くと、
solargraph language serverが起動する。

solargraph readyという状態になるので、その状態でsample.rbに文字を入力すると、
無事コード補完が行われる。

rubocopの確認

次にrubocopの動作確認を行う。
そのために、VSCodeのプラグインである「Ruby」をインストールする。

https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby

このプラグインをVSCodeにインストールし、一度VSCodeを再起動する。

再起動したVSCodeにて、以下のようにsample.rbに適当に入力をしていくと、
rubocopのコード解析が走り、文法的にまずい箇所などを指摘してくれるようになる。