RubyMine 2026.1 Help

インスペクション:重複したコード箇所

RubyMine は、 重複したコード箇所 インスペクションによって、特定のファイルセット内の繰り返しコードブロックを見つけるのに役立ちます。 コードを記述または貼り付けて複製を作成すると、RubyMine はすぐにそれをハイライトし、クイックフィックスを提案します。

インスペクションには いくつかの設定が搭載されており、動作を変更することができます。

選択したファイルセットのすべての重複を一度に表示するには、 名前でインスペクションを実行します。

その場で重複を検出する

インスペクションを構成する

  1. Ctrl+Alt+S を押して設定を開き、 エディター | インスペクション を選択します。

  2. 必要な インスペクションプロファイルプロファイル リストで選択されていることを確認してください。

  3. インスペクション​ ダイアログの検索フィールドに 重複したコードフラグメント と入力して、リストからインスペクションを見つけます。

    インスペクションをクリックすると、その設定が右側に表示されます。

    重複コードフラグメントインスペクション設定
    • 重大度: リストから 重大度レベルを選択するか、 新しい重大度レベルを作成します。

    • スコープ: インスペクションが実行されるファイルの範囲 (分析対象となるコード) を選択します。

    • 重複の表示: 複製が表示されるファイルのセットを選択します。

      誤検知を最小限に抑えるには、同じモジュールまたはファイル内の重複のみを検出するように分析を制限します。

    • 次よりも単純な重複をスキップ: 選択したファイルセットの残りのコードと比較されるコードフラグメントのサイズを単位で設定します。

      デフォルト値は、精度と見つかった重複の数の間の妥協点です。 より正確な結果を得るには、値を大きくします。 より多くの重複を検索するには、値を減らします。

      単位の正確な値は次のように計算できます: units = 2 * number of statements + number of expressions

    • 最小出現箇所: コード断片が重複とみなされる最小出現回数を選択してください。

    • このインスペクションが動作する予定の言語を選択してください。

  4. 変更を適用して、ダイアログを閉じます。

重複の検索中に名前と値を無視する

ファイルタイプごとに、名前または値のみが異なる同一のエンティティを重複として扱うかどうかを定義できます。

  1. Ctrl+Alt+S を押して設定を開き、 エディター | 重複 を選択します。

  2. 分析を適用するファイルタイプを選択し、匿名化したい構成要素の横にあるチェックボックスを選択します。

    重複の検索中に名前と値を無視する

    例: 変数名または識別子名関数名またはフィールド名 が有効になっている場合、以下の 2 つの機能は重複していると見なされます。

    def multiply(a, b) a * b end def multiplicator(c, d) c * d end
  3. 変更を適用して、ダイアログを閉じます。

このダイアログでは、重複分析とプロジェクト分析の両方から特定の言語を完全に除外することもできます。 このページで言語を無効にすると、その言語は インスペクション設定で非表示になります。

インスペクションを抑止する

インスペクションを抑止すると、コード解析エンジンは、そのインスペクションで検出された特定のコード(クラス、メソッド、フィールド、ステートメント)上の問題をハイライトしません。

  1. インスペクションを抑制したいコード要素にキャレットを置き、 Alt+Enter を押します。

  2. すべての重複を表示 アクションの横にある矢印 をクリックし、必要な抑止アクションを選択します。

    インスペクションの抑制

詳細については、 インスペクションの抑止 を参照してください。

インスペクションを無効にする

インスペクションを無効にすると、オフになります。 つまり、コード分析エンジンは、このインスペクションが検出するように設計されている問題について、プロジェクトファイルの検索を停止します。

  1. インスペクションを無効にするコード要素にキャレットを置き、 Alt+Enter を押します。

  2. の横にある矢印をクリックして すべての重複を表示 アクションを開き、 インスペクションを無効化 を選択します。

    インスペクションを無効にする

インスペクションを再度有効にするには、 設定 | エディター | インスペクション に移動し、 重複したコード箇所 の横にあるチェックボックスを選択します。

詳細については、 インスペクション無効化 を参照してください。

重複を手動で見つける (非推奨)

  1. メインメニューで コード | コードの解析 | 重複コードの検索 へ移動します。

  2. コード重複分析スコープの指定 ダイアログで、解析 スコープを選択します:プロジェクト全体、現在のファイル、未コミットのファイル(バージョン管理下のプロジェクトの場合)、またはカスタムスコープ。 テストソースを解析に含めることもできます。

  3. コード重複解析設定 ダイアログで、分析したい言語を選択します。

    言語ごとに、オプションをチェックして分析設定を定義します。 例: コードフラグメントが重複していると見なされるように同一の一致を要求するか、コード構成要素が重複していると見なされないような一定の制限を指定することができます(たとえば、ソースコードで各 if 構成要素を報告しないように)

  4. 重複ツールウィンドウで、解析結果を調べましょう。

    • ツールウィンドウの左ペインで重複のリストを表示します。

    • 右側のペインに、見つかった重複間の相違点が表示されます。 矢印ボタンを使用して、選択した重複を差分ビューアーのセクションの 1 つに配置し、コードの断片を比較します。

    • ソースに移動 または ソースの表示 コンテキストメニューコマンドを使用して、エディター内の重複した場所に移動します。

2026 年 6 月 2 日