IntelliJ IDEA 2026.1 Help

チュートリアル: Kotlin での構造検索と置換

構造検索と置換は、コード内の特定のパターンを検索し、自動化された方法でそれを置換できる強力なツールです。

このチュートリアルでは、テンプレートとフィルターについて理解し、事前定義されたテンプレートを変更して、それに基づいてコードインスペクションを作成します。

このチュートリアルでカバーされている機能は、 構造検索と置換 が実行できることの完全なリストではありません。 私たちのゴールは、始められるようにすることです。 その後、さまざまなテンプレート、フィルター、オプションを調べ、組み合わせて独自の特定の検索を作成できます。

チュートリアルでは、次のコードを使用します。

class Point constructor(locationX: Int, locationY: Int) { var x: Int = locationX var y: Int = locationY } open class OpenClass { open var openProperty = 0 open fun display() { println("Some text") print("More text") print(0) } }

構造的に検索を開くダイアログ

  • メインメニューで 編集 | 検索 | 構造検索(T)… へ移動します。

既存のテンプレートを使用する (プロパティ宣言)

  1. 構造検索 ダイアログで、左側のリストから Kotlin を選択します。

  2. クラスベース ノードを展開し、 クラスのすべてのvar をクリックします。

  3. Kotlin言語(L) として選択されていることを確認してください。 これにより、検索は Kotlin ファイルのみに適用されます。

    Kotlin ファイルのみを検索
  4. 検索 をクリックして検索を実行します。 その結果、 検索 ツールウィンドウに、IntelliJ IDEA は Kotlin クラスで宣言されたすべてのプロパティを表示します。

    プロジェクトファイルで見つかった一致

再実行

  • 構造検索 ダイアログで、 最近 ノードを展開して、最近の検索の履歴を参照し、それらのいずれかをすばやく再実行します。

次に、構造検索ダイアログに戻り、事前定義されたテンプレートを少し変更します。

事前定義されたテンプレートを変更する

  1. 構造検索 ダイアログで、 $Field$ 変数の前に open を追加して、開いているプロパティのみを検索するようにテンプレートを更新しましょう。

    クラス検索テンプレートを変更する
  2. 検索 をクリックし、 検索 ツールウィンドウで結果を確認します。

    すべてのオープンフィールドの結果

    ご覧のとおり、今回の検索ではフィルターが使用され、現在開いているプロパティのみが表示されます。

構造検索 を使用すると、いくつかの興味深い検索を実行できます。 例として、別の既存のテンプレート(メソッド呼び出し )を選択しましょう。 この検索を実行して、すべての print ステートメントをロギング呼び出しに置き換え、引数として String を持たないすべての呼び出しを除外するとします。

関数呼び出しを置き換える

  1. メインメニューで 編集 | 検索 | 構造置換 へ移動します。

  2. Kotlin | 式 ノードで、 メソッド呼び出し を選択します。

    Kotlin メソッドはテンプレートを呼び出する
  3. ここで検索を実行すると、コード内のすべての関数呼び出しを含む結果が得られます。 テンプレートを少し変更し、フィルターを使用して、探しているものをより具体的にする必要があります。

    キャレットを $MethodCall$ に配置し、右側のペインで 修飾子の追加 をクリックします。 print.* の値で テキスト フィルターを追加します。

    検索テンプレートにテキストフィルターを追加する
  4. キャレットを $Before$ に置き、右側のペインで、唯一の修飾子が Count=[0,1] であることを確認します。

  5. キャレットを $Parameter$ に配置し、右側のペインで the Plus icon をクリックします。 String の値で タイプ フィルターを追加します。

    検索テンプレートにタイプフィルターを追加する
  6. 置換テンプレート 領域に置換コードを追加します: java.util.logging.Logger.getLogger(this.javaClass.getName()).fine($Parameter$)

    置換コードを追加する
  7. 検索 ツールウィンドウで結果を確認し、置換オプションを使用して、置換する結果を選択します。

    置換テンプレートの結果

必要に応じて、後で使用するためにこのテンプレートを保存できます。

テンプレートの保存

  1. 構造置換 ダイアログで、 the Tools button をクリックします。

  2. 表示されたリストで、 現在のテンプレートを保存 を選択します。

  3. テンプレートの名前を指定して、 OK をクリックします。

    置換テンプレートを保存

テンプレートは 保存済みテンプレート ノードに保存されます。

ユーザー定義テンプレートのリスト

テンプレートをインスペクションとして使用することもできるため、同じコードに遭遇すると警告が表示され、コードをすばやく置き換えることができます。

カスタム検査を作成する

  1. 置換パターンの結果が表示される 検索 ツールウィンドウで、 テンプレートからインスペクションを作成 をクリックします。

    置換テンプレートから新しいインスペクションを作成する
  2. 開いたダイアログで、インスペクションの名前を追加します。 必要に応じて、ツールチップを追加します (ハイライトされたコードの上にマウスを置くと、問題のより詳細な説明が表示されます)。 OK をクリックします。

新しく作成されたインスペクションは、 設定 | エディター | インスペクション構造検索 ノードに表示されます。

2026 年 3 月 30 日