RubyMine 2023.3 の新機能

AI Assistant サポートの改善、Rails アプリケーションとエンジンのカスタムパス、Rails 7.1 の厳密な locals に対応したコードインサイト、RBS からの追加宣言、デバッガーの型レンダラーの更新、サーバーモードの RuboCop、Brakeman コードインスペクションなど。

AI Assistant 一般提供

JetBrains IDE の生産性を向上させる多数の新機能と改善が盛り込まれた JetBrains AI Assistant が一般公開されました。

AI-generated name suggestions

AI が生成した名前候補のサポート

Ruby コードのローカル変数とパラメーターに AI が生成した名前候補を使用できるようになりました。 このアクションは Rename(名前の変更)リファクタリングをインラインで使用する場合に提供されます。 名前候補を有効にするには、Settings(設定)| Tools(ツール)| AI AssistantProvide AI-generated name suggestions(AI が生成した名前候補を提供する)チェックボックスをオンにします。

AI assistant context

Ruby コンテキストの改善

Ruby コンテキストと LLM によるコードベースの解析方法の改善に引き続き取り組んでいます。 この変更は AI Assistant によるドキュメントの生成、Ruby コードの説明、ファイルコンテンツの認識などの挙動に影響を与えます。

ユニットテストの生成

ユニットテストの生成

AI Assistant を使うと、Ruby または Rails アプリケーションの public メソッドに対するテストを簡単に生成できます。 テストでカバーしたいメソッドを選択し、macOS では ⌥ + Enter を、Windows では Alt + Enter を押します。 コンテキストメニューから AI Actions(AI アクション)と Generate Unit Tests(ユニットテストの生成)を順に選択します。

RubyMine の AI Assistant は JetBrains AI Service サブスクリプションをご利用の場合に追加機能として使用できます。

Rails

Custom paths for Rails

Rails アプリケーションとエンジンのカスタムパス

RubyMine は Rails アプリケーションとエンジンに使用されているカスタムパスを認識します。 IDE は appapp/controllersapp/models のようなデフォルトのパスのほか、ユーザープロジェクト内で定義されている他の場所も認識できます。 そのため、デフォルトの構造を再定義しても RubyMine のコードインサイト機能を利用し続けることができます。 カスタムパスをセットアップするには、Settings(設定)| Languages & Frameworks(言語とフレームワーク)| Rails | Paths(パス)に移動します。

Rails パスの自動インポート

Rails パスの自動インポート

Rails アプリケーション内のカスタムパスを自動的に検出する新しいオプションを実装しました。 プロジェクトを開くたびに RubyMine がバックグラウンドで Rails パス構成のインポートを試みます。

Code insight for elements outside default location

デフォルトの場所に格納されているモデル、コントローラー、およびメーラーに対応したコードインサイト

ナビゲーションや型サポートといったお気に入りのコードインサイト機能のすべてをデフォルトディレクトリの外部にあるモデル、コントローラー、メーラーでも使用できるようになります。

Strict locals

Rails 7.1 の厳密な locals に対応したコードインサイト

RubyMine が厳密な locals に対応した解決、補完、Find Usages(使用箇所の検索)、Rename(名前の変更)、ナビゲーション機能をサポートするようになりました。

型推論

Type provision for self-type bindings

ブロック内のカスタム自己型の型情報

RubyMine で RBS のブロックの自己型から Ruby へのカスタマイズがサポートされるようになりました。 この機能は DSL にメリットがあり、RubyMine が認識できるようになるため、コードインサイトが強化されます。

Annotation to specify self-type of blocks

ブロックの自己型を指定するカスタムアノテーション

YARD のようなコメントを使用することで、ブロックの自己型をブロック内で直接明示的に指定できるようになりました。

Extra declarations from RBS

RBS の追加宣言のサポート

Ruby ファイルに宣言がない RBS の追加宣言を認識するための基本的なサポートを実装しました。 補完と RubyMine の他の機能でリフレクションの宣言をそのまま含められるようになったため、これはリフレクションを大量に使用するプロジェクトにおいて特に役立ちます。 この機能はクラス、モジュール、定数、メソッド、および変数で使用できます。

デバッガー

デバッガーの型レンダラー

デバッガーの型レンダラーの更新

型レンダラーに変更を適用するためにデバッガーを再起動する必要がなくなりました。 Apply(適用)ボタンをクリックするだけで、RubyMine がすぐに変更を再読み込みします。

ツールとライブラリ

Rubocop server mode

サーバーモードの RuboCop

RubyMine は RuboCop のサーバーモードでの実行を自動的にサポートします。 これが機能するには、次の要件を満たしている必要があります。

  • Linux または MacOS
  • ローカルの Ruby MRI 2.3 以降
  • RuboCop 1.31 以降
Brakeman

Brakeman コードインスペクション

RubyMine 内で Brakeman のインサイトを見やすい形式で便利に確認できるようになりました。 Brakeman のドキュメントや信頼性インジケーターなどに簡単にアクセスできるため、セキュリティの問題に迅速に対応できます。 brakeman gem がインストールされていることを確認してから、Code(コード)| Analyze Code(コードの解析)| Run inspection by name(インスペクション名を指定して実行)に移動して解析を起動します。

rspec-parameterized

rspec-parameterized による spec のパラメーター化

RubyMine には認識、解決、および補完の提案など、RSpec::Parameterized 構文の包括的なサポートが備わっています。 テストエクスペリエンスを強化するため、実行/デバッグ構成も実装されています。

let_it_be support

let_it_be によるフィクスチャ宣言

let_it_be ブロックを使った RSpec テストでのフィクスチャ宣言のサポートを追加しました。 サポート内容には変数の解決、構文ハイライト、before_all での do ブロック挿入の自動処理などの機能が含まれます。 この機能を有効にするには、test-prof gem をインストールする必要があります。