RBS
RubyMine は、Ruby プログラムで使用される型を記述するための RBS(英語) 言語をサポートしています。RubyMine は .rbs ファイルを認識し、次のコーディング支援を提供します。
エラーと構文のハイライト
Ctrl+/ を使用したコードコメント
RBS 関連コードインスペクションおよびインテンションアクション。
RBS は、すぐに使用できる標準ライブラリ用の一連の組み込み型シグネチャーを提供します。プロジェクトで RBS を使用すると、RubyMine はそのソースを外部ライブラリに表示します。
RubyMine は rbs_collection.lock.yaml ファイルでも動作します。このシナリオでは、RubyMine は、どの型シグネチャーがロードされ、コードインサイトに使用されるかを決定します。詳細については、ドキュメント(英語)を参照してください。
RBS 型の署名
RubyMine は RBS 型シグネチャーをサポートし、Ruby 要素の型を決定するために使用しています。これにより、Ruby でコードを開発する際に、より良いコードインサイトを体験することができます。
プロジェクトに RBS ファイルがある場合、RubyMine は以下を提供します。
メソッドの完成度の向上
RubyMine は、コード補完を呼び出すときに、リストの先頭に適切なクラスのメソッドを表示します。
Ruby 完了時の RBS からの追加宣言
RubyMine は、Ruby ファイルに存在しない RBS からの追加の宣言を認識します。これは、これらの宣言を補完時にも存在させることができるため、リフレクションを頻繁に使用するプロジェクトにとって特に有益です。この機能は、クラス、モジュール、定数、メソッド、変数で利用できます。
改善されたナビゲーションアクション
「宣言に移動」アクションを呼び出すと、RubyMine は、選択する宣言のリストを提供する代わりに、正確な宣言に移動します。
対応する宣言の使用箇所を検索します
RBS 型では、RubyMine は Ruby 要素の正しい宣言を見つけることができます。'リファクタリング' アクションを呼び出すと、RubyMine は、選択可能な宣言のリストを提供する代わりに、対応する宣言の使用箇所を即座に検出します。
一貫した名前変更リファクタリング
RubyMine が RBS を利用する場合、すべての潜在的なオプションを表示するのではなく、関連するエンティティの名前を変更することのみを提案します。
型情報を表示する
RBS 署名が提供されると、RubyMine はそれを使用して Ruby 要素の型を決定します。要素型を表示するには、目的の Ruby 要素にキャレットを置き、メインメニューで
Ctrl+Shift+P に移動します。
パラメーター情報を表示する
RubyMine は、RBS シグネチャーを使用して、パラメーター情報ポップアップにメソッドパラメーターの型を表示します。デフォルトでは、エディターで左括弧を入力するか、候補のリストからメソッドを選択すると、RubyMine はポップアップを自動的に表示します。
パラメーター情報ポップアップを明示的に呼び出すには、メインメニューの Ctrl+P に移動します。
型が一致することを確認する
RubyMine は、RBS ファイルの型と一致しない型を使用しようとすると警告します。
これらの警告は、不一致型インスペクションを使用して管理できます。インスペクションは、次の目的で使用できます。
一定の割り当て
インスタンス変数とクラス変数への割り当て (シングルトンクラス / メソッドにインスタンス変数を含める)
メソッドとブロックでのパラメーター割り当て
メソッドとブロックの戻り値
メソッドと
yield
呼び出しの引数
クイックドキュメントを見る
クイックドキュメントを使用して、使用中の RBS 署名に関する情報を取得できます。
エディターで必要なシンボルの上にマウスを置きます。
シンボルにキャレットを置き、Ctrl+Q を押すか、メインメニューから
を選択します。Ctrl+Q をもう一度押して、ドキュメント> ツールウィンドウでこのドキュメントを開きます。
ポップアップで
をクリックしてフォントサイズを変更するか、クイックドキュメントツールバーを表示するか、ソースコードに移動します。
RBS ファイルを作成する
プロジェクトビュー Alt+1 で、新しい RBS ファイルを作成するディレクトリを選択します。
Alt+Insert を押して、ポップアップから RBS ファイル / クラスを選択します。
別のオプションとして、メインメニューから
を選択します。ファイル名を指定して、Enter を押します。
RBS プロトタイプを生成する
RubyMine は、Ruby コードから単純なシグネチャープロトタイプ(英語)を生成するためのツールを提供します。これらのプロトタイプは、プロジェクトに新しい RBS 型を追加し始める方法を理解するのに役立つ場合があります。
型シグネチャーを生成する Ruby ファイルを開きます。
メインメニューで、
Alt+Insert に移動します。生成ポップアップで型シグネチャーを選択します。
RubyMine は、Ruby ファイルと同じ名前の新しい RBS ファイルを生成します。結果のプロトタイプに含まれるすべての型は、
untyped
として指定されます。型シグネチャーを書き込むためのテンプレートとして使用できます。
クイックフィックスを使用して不足している型シグネチャーを追加する
Missing Type Signature インスペクションのクイックフィックスを使用して、欠落している型シグネチャーをいつでも追加できます。RubyMine は、既存の RBS ファイルに移動するか、必要に応じて新しい RBS ファイルを作成し、それぞれの署名テンプレートを生成します。
型シグネチャーがない Ruby シンボルにキャレットを置きます。
Alt+Enter を押すか、問題のある行の
アイコンをクリックします。
メニューから型シグネチャーを追加フィックスを選択します。
開いた RBS ファイルで、型シグネチャーを更新します。
型シグネチャーを編集する
RubyMine を使用すると、専用のインテンションアクションまたは不一致型インスペクションで使用できるクイックフィックスを使用して、Ruby ファイルから型シグネチャーを編集できます。
編集する型の署名である Ruby シンボルにキャレットを置きます。
Alt+Enter を押して、メニューから型シグネチャーの編集を選択します。
開いた RBS ファイルで、型シグネチャーを更新します。
RBS ファイルの構造を表示する
構造ツールウィンドウ Alt+7 を使用して、RBS ファイルの高レベルの構造を調べることができます。
![構造ツールウィンドウ Structure tool window](https://resources.jetbrains.com/help/img/idea/2024.1/rm_rbs_structure_view.png)
Ruby ファイルと RBS ファイル間を移動する
RubyMine を使用すると、Ruby 宣言からその型シグネチャーに、またはその逆に移動できます。ナビゲーション機能は次の目的で利用できます。
属性 (現在、RBS から Ruby に移動する場合にのみ機能します)
クラス、モジュール、定数
クラス変数とインスタンス変数
グローバル変数
メソッド (
singleton
を含む)
型署名に移動する
Ruby 宣言を選択し、
に移動して、その型シグネチャーに移動します。
関連する Ruby 宣言に移動する
型シグネチャーを選択し、
に移動して、関連する Ruby 宣言に移動します。
インテンションアクションで移動する
キャレットを必要な要素に配置し、Alt+Enter を押します。
リストから必要な型署名または関連する宣言に移動するアクションを選択します。Enter を押して、インテンションアクションを適用します。
関連する Ruby または RBS 要素に移動する
必要な要素にキャレットを置き、メインメニューの
Ctrl+Alt+Home に移動します。必要に応じて、ポップアップから目的のターゲットを選択します。
Steep を使用して Ruby の型を確認する
RubyMine は、なんでも実行を使用した Steep(英語) コマンドの実行をサポートします。Steep を使用する前に、必ず steep gem を Gemfile に追加してください。
Steep をインストールした後、プロジェクトの Steepfile を生成する必要があります。
Steepfile を生成して構成する
Ctrl を 2 回押します。
検索フィールドに
steep init
と入力し始めます。提案のリストからコマンドを選択し、Enter を押します。RubyMine は、プロジェクトの Steepfile を生成します。生成された Steepfile を開いて編集します。例:
target :lib do check "lib" signature "sig" library "set", "pathname" end
型チェックを実行する
Ctrl を 2 回押します。
検索フィールドに
steep check
と入力し始めます。提案のリストからコマンドを選択し、Enter を押します。RubyMine は、コマンド出力を実行ツールウィンドウに表示します。
コードスタイルの設定を構成する
RubyMine は、Ruby と RBS の両方に同じコードスタイル設定を適用します。RBS のコードスタイルをカスタマイズするには:
設定ダイアログ(Ctrl+Alt+S)で、 に移動します。
必要なコードスタイル設定を構成します。
構文ハイライトを構成する
RubyMine は、Ruby 配色を使用して、RBS ファイルの構文をハイライトします。
好みや習慣に応じて、RBS 対応の構文のハイライトを構成できます。
設定ダイアログ(Ctrl+Alt+S)で、 に移動します。
配色を選択するか、デフォルトから継承されたハイライト設定を受け入れるか、色とフォントを設定する説明に従ってカスタマイズします。
関連ページ:
![](https://resources.jetbrains.com/help/img/idea/2024.1/rm_reformat_directory.png)
コードの再フォーマットと再配置
RubyMine を使用すると、現在のコードスタイルスキームまたは .editorconfig ファイルで指定した要件に従ってコードを再フォーマットできます。で定義されていないものがあれば、プロジェクト設定から取得されます。コードの一部、ファイル全体、ファイルのグループ、ディレクトリ、モジュールを再フォーマットできます。コードの一部または一部のファイルを再フォーマットから除外することもできます。コードフラグメントを再フォーマットするエディターで、再フォーマットしたいコードフラグメントを選択します。再...
![](https://resources.jetbrains.com/help/img/idea/2024.1/rm_completion_basic_2.png)
コード補完
このセクションでは、コーディングプロセスのスピードアップを可能にするコンテキスト対応コード補完のさまざまなテクニックについて説明します。基本補完:基本コード補完は、可視性スコープ内のクラス、メソッド、キーワードの名前を完成させるのに役立ちます。コード補完を呼び出すと、RubyMine はコンテキストを分析し、現在のキャレット位置から到達可能な選択肢を提案します (提案にはライブテンプレートも含まれます)。基本補完を呼び出す名前の入力を開始します。を押すか、メインメニューからを選択してください。...
![](https://resources.jetbrains.com/help/img/idea/2024.1/rm_find_usages_highlight_editor.png)
使用箇所を検索
コードを記述または編集するときに、変更または削除するコード要素に遭遇する場合があります。変更を行う前に、コード要素がどこで使用され、アプリケーションにどのように影響するかを確認することをお勧めします。使用箇所の検索アクションを使用すると、コードベース全体でコード要素の参照を検索できます。検索プロセスを管理し、単一のファイルのみで検索したり、検索をプロジェクト全体に拡張したり、特定の検索範囲を作成したりできます。さらに、使用箇所のハイライトの色を構成したり、用途の自動ハイライトを完全に無効にしたり...
![](https://resources.jetbrains.com/help/img/idea/2024.1/rm_recent_locations_popup.png)
コードナビゲーション
さまざまなアクションやポップアップを使用して、エディター内のコードを素早く移動することができます。RubyMine で利用可能なナビゲーションオプションをチェックするためにビデオチュートリアルを見ることから始めることができます。キャレットで移動する後方に移動するには、を押します。前方に移動するには、を押します。最後に編集した場所に移動するには、を押します。エディターで現在のキャレット位置を見つけるには、Ctrl+M を押します。大きなファイルをスクロールしたくない場合は、このアクションが役立
![](https://resources.jetbrains.com/help/img/idea/2024.1/rm_inspections_settings.png)
コードインスペクション
RubyMine には、プロジェクト内の異常なコードを検出して修正する一連のコードインスペクションがあります。IDE は、さまざまな問題を見つけてハイライトし、デッドコードを見つけ、考えられるバグやスペルの問題を見つけ、全体的なコード構造を改善することができます。インスペクションは、すべてのプロジェクトファイルまたは特定のスコープでのみ(たとえば、本番コードまたは変更されたファイルでのみ)コードをスキャンできます。すべてのインスペクションには、問題がコードに影響を与える可能性がある程度の重大度レ...
![](https://resources.jetbrains.com/help/img/idea/2024.1/rm_refactoring_rename_preview.png)
名前の変更リファクタリング
名前変更リファクタリングを使用して、シンボル、ファイル、ディレクトリ、Rails アプリケーションコンポーネント、Rails 名前付きスコープ、Rails フィクスチャなどの名前を変更します。RubyMine は、コード全体で、名前が変更された項目へのすべての参照を自動的に変更します。ローカル変数またはプライベートメソッドの名前の変更は、限られた範囲のみが影響を受けるため、インラインで簡単に実行できます。クラスや public メソッドの名前を変更すると、多くのファイルに影響を与える可能性があり...