IntelliJ IDEA 2024.1 ヘルプ

検索テンプレート、修飾子、スクリプトの制約

構造検索用のテンプレートを作成するときは、基本的にスクリプトを作成します。スクリプト作成プロセスを簡素化するために、IntelliJ IDEA は、検索テンプレートのプロトタイプとして使用できる事前定義された検索テンプレートのリストを提供します。

Search templates dialog

既存の検索と置換テンプレートのリストにアクセスする方法については、構造的な検索と置換のセクションを参照してください。

各検索または置換テンプレートは、条件 (修飾子) を追加して検索結果を絞り込むことができる変数 $variable_name$ で構成されます。修飾子は、検索テンプレートの変数に依存します。

A search template preview

カウント修飾子

カウント修飾子は、出現回数を指定します。

例: new java.lang.RuntimeException($x$) 検索テンプレートで、$x$ 変数の場合、カウント修飾子フィールドに最小数と最大数を指定します。無制限の最大数を設定するには、修飾子フィールドに空の値を指定します。

Count modifier

IntelliJ IDEA は変数に [0, ∞ ] を追加し、指定された範囲の数値を検索します。

参照修飾子

リファレンス修飾子を使用すると、変数内の他の検索テンプレートを参照できます。

参照には常に事前設定または保存されたテンプレートの名前が含まれ、自動補完を使用してこのフィールドに入力できます。

例: $MethodCalls$ 変数の場合、リファレンス修飾子フィールドにアノテーション付きのメソッドを入力します。

Reference modifier

IntelliJ IDEA は、アノテーション付きのメソッドへのメソッド呼び出しを検索します。

型修飾子

タイプ修飾子は、指定された変数に期待される値または式の型を追加します。

例: $expression$ 変数の場合、タイプ修飾子フィールドに int と入力します。

Find tool window the results for boxed expression

IntelliJ IDEA は、ボクシングが実行される場所を整数で検索します。

テキストフィルター

テキスト修飾子は、正規表現またはプレーンテキストに対して変数をチェックします。

例: 特定のインターフェースを実装するクラスを検索できます。この場合、テキスト修飾子にインターフェースの完全修飾名を追加します。また、型階層の中オプションを選択すると、Cloneable を間接的に実装するクラスも検索に含まれます。このオプションが選択されていない場合、Cloneable を直接実装するクラスのみが含まれます。

Text modifier

スクリプト制約

スクリプト修飾子は、Groovy スクリプト制約を検索テンプレートに追加します。スクリプト制約は、特定の言語構造を検索するときに使用されます。

例: 指定された数のパラメーターを持つコンストラクター、または指定された可視性修飾子を持つメンバー

テンプレートで使用されるすべての変数には、スクリプトの制約からアクセスできます。スクリプト制約を変数に追加すると、IntelliJ IDEA はそれを PSI ツリーと照合します。この変数は、実際には PSI ツリーのノードです(英語)

たとえば、メソッドにマッチする変数、toString() メソッドがあるとします。この変数は実際には PsiMethod ノードです。variable.parent を取得すると、PsiClass ノードなどが生成されます。variable.text はメソッドのテキスト全体を表示します。メソッドの名前だけが必要な場合は、variable.name を使用できます。

別のケースでは、構造検索と置換変数は、変数、PsiReferenceExpression への参照など、一部の式に一致することがあります。式には名前はありませんが、式のテキスト全体を検索すると、その変数が参照している変数の名前が表示されます。

次の既存のテンプレートで使用されているスクリプト制約の構文を確認できます。

  • 定数パラメーターを使用したサンプルメソッドの呼び出し

  • クラス

  • パラメーターのないコンストラクターを持つクラス

  • final ではない static フィールド

  • 未実装または未拡張のインターフェース

  • フィールド / 変数の読み込み

  • 名テンプレートが更新されたフィールド / 変数

Existing Templates dialog

関連ページ:

構造検索と置換

従来の検索プロセスでは、ソースコードの構文とセマンティクスが考慮されていません。正規表現を使用している場合でも、IntelliJ IDEA はコードを正規表現として扱います。構造検索および置換(SSR)アクションを使用すると、コード構造を考慮して、コード内の特定のコードパターンまたは文法構造を検索できます。IntelliJ IDEA は、作成した検索テンプレートと適用した条件に基づいて、ソースコードのフラグメントを見つけて置き換えます。ターゲットを構造的に検索するに移動して、構造検索ダイアログを...

構造検索と置換の例

ご存知のように、通常の検索と構造検索の主な違いは、構造検索ではプログラミング言語の構造テンプレートを探していることです。構造検索の利点は、既存のテンプレートに基づいてパターンを作成し、コードの検索と置換にかかる時間を節約できることです。既存のテンプレートの広範なリストは、単純なパターンからより複雑なパターンまで、多くのユースケースをカバーしています。パターン内の各アイテムは、両側の $ 記号によって制限される変数で構成されます。パターンの例:簡単なタスクから始めて、キーワードを使用して開いてい...