SQL テンプレート
構造検索を使用すると、ユーザー定義の検索テンプレートに一致するコードフラグメントを見つけることができます。 テンプレートがソースコードの一部と一致する場合、対応する式がハイライト表示されます。 検索テンプレートは、基本的にテキスト、変数、フィルター、スコープ、コンテキストで構成されるクエリです。 これらの要素を使用することで、検索を絞り込み、より正確な結果を得ることができます。
検索ツール
variable は、 $name$ や $field$ のようにドル記号で囲まれた文字のシーケンスです。
以下のスクリーンショットは、構造体の検索に使用されるテンプレートを示しています。

修飾子 は、変数や検索テンプレートに適用できるユーザー定義の条件です。 これにより、次のことが可能になります。
変数が何回出現するか確認する
変数の型を検証する
変数をプレーンテキストまたは正規表現と照合する
Groovy スクリプトを適用します。
使用可能な修飾子の完全なリストについては、 検索テンプレート、修飾子、スクリプト制約 を参照してください。
次の例は、前と同じテンプレートですが、 $name$ 変数に テキスト 修飾子を Employee に設定しています。 エディターでハイライト表示された検索結果がどのように変化したかに注目してください。

[文字列] 値で 型 修飾子を適用すると、 SELECT ステートメント内のすべての文字列値が検索されます。 しかし、テーブル定義(CREATE TABLE ステートメント)内のすべての文字列型を検索するには、 タイプ のコンテキストを適用する必要があります。 コンテキストを設定するには、フィルターも使用します。 ただし、変数の場合、フィルターは特定の変数に適用されますが、コンテキストフィルターは検索テンプレート全体に適用されます。

コンテキスト は、検索エンジンが変数を識別するのに役立つ組み込みの内部テンプレートです。 コンテキストは、言語のあいまいさを排除するために SQL にのみ使用されます。 コンテキストを使用することで、検索エンジンにどこでどの変数を検索するかを指示できます。 検索テンプレートには、次のコンテキストを設定できます。
式: 結果として値になる 1 つ以上の値、演算子、SQL 関数。 式 のコンテキストを使用すると、IDE は
SELECT $expression_1$ FROM table_name where $expression_2$などの構造で$expression_1$と$expression_2$を検索します。タイプ: テーブル列に格納できる値のタイプ(たとえば、
varchar(100))。 タイプ コンテキストを使用すると、IDE はCREATE TABLE table_name (id_1 $type_1$, id_2 $type_2$)などの構造で$type_1$と$type_2$を検索します。GoLand は、クエリ句:
DISTINCT、FROM、WHERE、ORDER BY、GROUP BYやHAVINGのようなクエリ句。 GoLand は、クエリ句 のコンテキストでは、変数を含む句キーワードを使用する必要があります。 例: IDE はselect * from table_name $variables$;のような構造でwhere $variables$を検索します。WHERE句にa + bのような式がある場合は、where $variable_1$ + $variable_2$;のように変数を明示的に指定できます。 また、任意の変数を検索ターゲットとして定義できます。

検索ターゲット は、テンプレートのどの部分を IDE が検索するか、単一の変数かテンプレート全体かを指定できるリストです。 例えば、検索ターゲットを使って、 $b$ の値を where $a$ + $b$ 検索テンプレートから context = query clause で見つけることができます。

スコープ は、検索を実行する情報源を定義します。 検索対象には、開いているファイルや現在使用しているファイル、 プロジェクト ツールウィンドウ(Alt+1 )内のディレクトリ、最近変更されたファイル、その他の情報源が含まれます。 特定のディレクトリを検索するには、 ディレクトリ を選択し、 閲覧 ボタンを押してください。

ファイルタイプ は、検索するファイルのダイアレクトを定義します。

構造検索用の SQL テンプレートはどのように機能しますか
検索エンジンが検索テンプレートを処理する方法を見てみましょう。 検索フィールドに WHERE $a$ 検索テンプレートがあり、 context = query clause を設定していることを考慮してください。
GoLand は、 GoLand は、クエリ句 コンテキストテンプレートの定義を受け取ります。 GoLand は、クエリ句 コンテキストテンプレートの場合、定義は
SELECT id from dummy $pattern$です。 既存テンプレート メニュー項目に、既存のすべてのコンテキストテンプレートを表示できます。IDE は、
$pattern$変数を、検索テンプレートで定義した値に置き換えます。 この例ではWHERE $a$です。 置換結果は、SELECT id from dummy WHERE $a$のようになります。IDE は最終的な
SELECTステートメントを解析し、構文ツリー内でWHERE $a$を検索します。WHERE $a$が見つかると、IDE はそれをエディターでハイライトします。
構造的に検索して置き換える
構造検索
をクリックしてください。
ファイルタイプ リストから、検索に使用する言語を選択します。
検索テンプレート フィールドに検索テンプレートを入力するか、既存のテンプレートを選択します。
ノードの下にあるテンプレートは選択しないでください。これらのテンプレートは、検索エンジンが言語の曖昧さを解消するために内部で使用します。 保存された SQL テンプレートは ノードの下にあります。
モディファイヤパネルが非表示の場合は、 検索演算子パネルの切り替え ボタン (
) をクリックします。
各テンプレート変数をクリックして、検索修飾子を設定します。 修飾子を設定するには、 修飾子の追加 リンクをクリックします。
GoLand は、エディターで見つかったコードの出現箇所を即座にハイライトします。
(SQL のみ)SQL コンテキストを追加します。
検索テンプレート フィールドで、キャレットをテンプレートの先頭に置き、 修飾子の追加 リンクをクリックします。 リストから コンテキスト を選択します。
(オプション) スコープ リストから、プロジェクト、モジュール、ディレクトリ、カスタムスコープ内で検索する場所を選択します。
(オプション) 検索ターゲット リストから、検索するテンプレートの部分を選択します: 個別の変数またはテンプレート全体(完全一致)。
検索 をクリックしてください。

構造置換
メインメニューで へ移動します。
検索テンプレート フィールドに検索テンプレートを入力するか、既存のテンプレートを選択します。
ノードの下にあるテンプレートは選択しないでください。これらのテンプレートは、検索エンジンが言語の曖昧さを解消するために内部で使用します。 保存された SQL テンプレートは ノードの下にあります。
置換テンプレート フィールドに検索テンプレートを入力するか、既存のテンプレートを選択します。
置換テンプレート内の変数に修飾子を追加する必要がある場合は、変数にキャレットを置き、修飾子領域を使用して修飾子を管理します。
検索 をクリックしてください。 GoLand は、 検索 ツールウィンドウに結果を表示します。
検索 ツールウィンドウでは、結果をさらに操作して、見つかったアイテムを 1 つずつ置き換えたり、すべてを一度に置き換えたり、潜在的な変更をプレビューしたりできます。
