コードのリファクタリング
リファクタリングは、ソースコードを変更したり維持したりするのを容易にするために、ソースコードを変更するプロセスですが、動作を変更することはありません。RubyMine は、さまざまなプログラミング言語のさまざまなリファクタリング操作をサポートしています。このトピックでは、主に Ruby で使用できるリファクタリングについて説明します。
リファクタリングの呼び出し
リファクタリングするアイテムを選択します。エディターでプロジェクトツールウィンドウまたは式 / シンボルでファイル / フォルダーを選択できます。
選択可能なリファクタリングのリストを開くには、Ctrl+Alt+Shift+T を押します。
または、特定のリファクタリング用のキーボードショートカットを使用することもできます。
フィールドのカプセル化、static メンバーの移動、委譲の抽出、インターフェースの抽出、スーパークラスの抽出などの拡張範囲のリファクタリング操作用にマルチキャレット選択を作成することもできます。この機能を利用するには、リファクタリングを適用する各メンバーにキャレットを置きます。IDE はリファクタリングダイアログでこれらのメンバーを自動的に事前選択してチェックします。
リファクタリングを元に戻す必要がある場合は、Ctrl+Z を押します。
リファクタリングの変更をプレビューする
一部のリファクタリングでは、RubyMine を使用して変更を適用する前に変更をプレビューできます。
リファクタリングプレビューダイアログでプレビューをクリックすると、潜在的な変更 (リファクタリングが実行される使用箇所のリスト) が表示されます。
開いた検索ツールウィンドウで、行われる変更を確認します。Delete を除外したり、不要と思われる Ctrl+X の変更を削除したりできます。
リファクタリング実行をクリックして、変更を続行します。
リファクタリング設定を構成する
設定ダイアログ(Ctrl+Alt+S)で、 を選択します。
コード編集ページのリファクタリングセクションでリファクタリングオプションを調整し、OK をクリックします。
RubyMine でサポートされているリファクタリング
Shift+F6 | ||
F6 F5 | ||
Ctrl+Alt+V | ||
Ctrl+Alt+C | ||
Ctrl+Alt+F | ||
Ctrl+Alt+P | ||
Ctrl+Alt+M | ||
Ctrl+Alt+N | ||
Alt+Delete | ||
関連ページ:
![](https://resources.jetbrains.com/help/img/idea/2024.1/rm_multiselection3.png)
複数のカーソルと選択範囲
RubyMine エディターで入力、コピー、貼り付けを行う場合、複数のカーソルを切り替えて、アクションが複数の場所に同時に適用されるようにすることができます。コード補完やライブテンプレートなどの高度なエディターアクションもサポートされており、各キャレットに適用されます。ファイルに追加できるキャレットの数は 1000 に制限されています。この制限を増やす場合は、カスタム JVM オプションを開き、次の行を追加します: 最近追加されたキャレットはプライマリと見なされます。現在のエディターライン、補完リ...
![](https://resources.jetbrains.com/help/img/idea/2024.1/rm_refactoring_rename_preview.png)
名前の変更リファクタリング
名前変更リファクタリングを使用して、シンボル、ファイル、ディレクトリ、Rails アプリケーションコンポーネント、Rails 名前付きスコープ、Rails フィクスチャなどの名前を変更します。RubyMine は、コード全体で、名前が変更された項目へのすべての参照を自動的に変更します。ローカル変数またはプライベートメソッドの名前の変更は、限られた範囲のみが影響を受けるため、インラインで簡単に実行できます。クラスや public メソッドの名前を変更すると、多くのファイルに影響を与える可能性があり...
![](https://resources.jetbrains.com/help/img/idea/2024.1/rm_refactoring_move_file.png)
移動およびコピーリファクタリング
コピー:コピーリファクタリングでは、クラス、ファイル、ディレクトリのコピーを異なるディレクトリに作成することができます。コピーリファクタリングを実行するには: リファクタリングする識別子(エディター内のクラスまたはプロジェクトツールウィンドウ内のファイルなど)を選択します。メインメニューまたはコンテキストメニューからを選択するか、を押します。コピーウィンドウで、コピーの名前と場所を指定し、OK をクリックします。移動:移動リファクタリングでは、ファイル / ディレクトリを別のディレクトリまたは...
![](https://pleiades.io/icons/rubymine.png)
変数の抽出 / 導入
変数の抽出リファクタリングを使用すると、指定した値を対応する変数に抽出できます。このリファクタリングは、基本的な Ruby データ型(文字列、配列、ハッシュなど)およびクラスインスタンスに使用できます。以下のアニメーションは、文字列から変数に特定の単語を抽出する方法を示しています。変数を抽出するにはリファクタリングする値を選択するか、必要な値を含む文字列にキャレットを配置します。メインメニューで、に移動します。(オプション) 抽出可能な複数の式を含む場所にキャレットを置く場合は、必要な式を選択し...
![](https://resources.jetbrains.com/help/img/idea/2024.1/rm_refactoring_extract_field.png)
フィールドの導入
フィールドの導入リファクタリングを使用すると、指定した値をインスタンス変数またはクラス変数に抽出できます。以下のアニメーションは、文字列からインスタンス変数に特定の単語を抽出する方法を示しています。フィールドを抽出するにはリファクタリングする値を選択するか、必要な値を含む文字列にキャレットを配置します。メインメニューで、に移動します。(オプション) 抽出可能な式が複数含まれる場所にキャレットを置く場合は、必要な式を選択してを押します。(オプション)式の出現箇所が複数見つかった場合は、選択した出
![](https://resources.jetbrains.com/help/img/idea/2024.1/rm_refactoring_extract_parameter_expressions.png)
パラメーターの抽出
パラメーターの抽出リファクタリングは、メソッド宣言に新しいパラメーターを追加し、それに応じてメソッド呼び出しを更新するために使用されます。以下のアニメーションは、文字列から値を抽出してメソッドパラメーターを追加する方法を示しています。パラメーターを抽出するにはリファクタリングする値を選択するか、必要な値を含む文字列にキャレットを配置します。メインメニューで、に移動します。(オプション) 抽出可能な複数の式を含む場所にキャレットを置く場合は、必要な式を選択してを押します。呼び出されたダイアログで