Rubyプロジェクトに「solargraph + rubocop」を入れる
内容
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を有効にするために、以下のプラグインをインストールする。
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
}
}
動作確認
ここまでの状態で、プロジェクト内に適当な名前でRubyファイルを作成する。
今回は以下の様にsample.rb
というファイルを作成する。
$ touch sample.rb
そして、プロジェクトルートでVSCodeを起動する。
$ code .
solargraphの確認
VSCodeのエディタが立ち上がり、sample.rb
を開くと、
solargraph language server
が起動する。
solargraph ready
という状態になるので、その状態でsample.rb
に文字を入力すると、
無事コード補完が行われる。
rubocopの確認
加えて、sample.rb
に適当に入力をしていくと、rubocopのコード解析が走り、
文法的にまずい箇所などを指摘してくれるようになる。