本記事では、rubyLsp.bundleGemfile
の設定を介して、Ruby 2.7のプロジェクトにおいてもVSCodeのruby-lsp拡張機能を有効にする方法を紹介します。これにより、定義ジャンプやコードフォーマットといった便利な機能をRuby 2.7で利用可能になります。
VSCodeでruby-lsp拡張機能を導入することにより、Ruby開発が格段に便利になります。この拡張機能は、定義へのジャンプ、コードフォーマット、リント機能など、開発者の生産性を大幅に向上させる多数の機能を提供します。しかし、これらの機能はRubyのバージョン3.0以上でなければ利用できません。
Ruby 2.7でのプロジェクトでは、標準ではruby-lspを利用することができません。しかし、rubyLsp.bundleGemfile
の設定を適用することで、Ruby 2.7の環境下でもこれらの機能を活用できるようになります。
rubyLsp.bundleGemfile
をRuby 3.0以上をサポートするディレクトリ内のGemfileを指定して設定することにより、Ruby-LSPが動作し、Ruby 2.7のプロジェクトでその機能を利用できるようになります。
まず、プロジェクトとは無関係なディレクトリにGemfileを作成します。
# frozen_string_literal: true
source "https://rubygems.org"
gem "ruby-lsp"
gem "rubocop"
# プロジェクト内でRuboCopの拡張を利用している場合、それらのgemを追加
# gem "rubocop-performance"
# gem "rubocop-rspec"
次に、以下のコマンドを実行してbundle installを行います。
$ bundle install
最後に、VSCodeのsettings.jsonに先ほど作成したGemfileを指定します。
{
"rubyLsp.bundleGemfile": "/Users/../ruby-lsp/Gemfile",
}
これにより、Ruby 2.7のプロジェクトでもVSCodeのruby-lsp拡張機能を活用することが可能になります。RuboCopの設定は、それぞれのプロジェクトに存在するrubocop.ymlファイルに基づいて自動的に読み込まれます。