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

構造検索ダイアログで、次のいずれかの操作を行います。
テンプレートを最初から作成します。テンプレートのリストから下書きテンプレートを選択し、エディター領域にコードテンプレート (たとえば、コードを表す
$variable$) を入力します。カスタムテンプレートを将来使用するために保存するには、ダイアログツールバーの「テンプレートの保存」アイコン(
)をクリックします。テンプレートをインスペクションとして保存することもできます。

WebStorm は、作成したテンプレートをテンプレートリストの最近ノードに追加します。
既存のテンプレートの 1 つをプロトタイプとして使用します。使用可能な既存のテンプレートのリストから必要なテンプレートを選択します。

例 1
次のクラスから関数を見つけてみましょう。
class Person { constructor(firstName, lastName, age, eyeColor) { this.firstName = firstName; this.lastName = lastName; this.eyeColor = eyeColor; this.age = age; } move(distanceInMeters) { console.log(`Person moved ${distanceInMeters}m.`); } sing(a) { console.log(`Person sings ${a}`); } jump (distanceInMeters,heightInMeters) { console.log(`Person jumped ${heightInMeters}m high and ${distanceInMeters}m right.`); } RETIRED(age) { return age >= 60; } }既存のテンプレートの一覧から、JavaScript をクリックし、一般ノードを展開して、関数テンプレートを選択します。

プロジェクト全体でこれらの構造を検索するには、検索をクリックします。WebStorm をクリックすると、検索ツールウィンドウに検索結果が表示されます。

現在のファイル内のすべての関数を検索するには、スコープをクリックし、リストから現在のファイルを選択して、検索をクリックします。

結果は検索ツールウィンドウにも表示されます。
構造検索ダイアログには、選択したテンプレートとそのフィルターの値が表示されます。既存のフィルターを編集したり、新しい条件を追加したりできます。コード変数にキャレットを置き、フィルター領域を使用してフィルターを管理します。
例: テンプレート内のパラメーターの数を変更するには、
$parameter$変数を選択し、適切な最小数を指定します。
検索をクリックすると、WebStorm は検索ツールウィンドウを開き、2 つ以上のパラメーターを持つメソッドのリストが表示されます。この例では、
jump (distanceInMeters,heightInMeters) {}のみが表示されます。
例 2
$name$変数に条件を追加してみましょう。修飾子パネルで、追加(
)をクリックして新しい修飾子を作成します。正規表現を使用する場合は、テキストを選択します。変数に応じて他の修飾子を追加することもできます。
テキスト修飾子の場合は、次の正規表現を入力します。
\b[A-Z]+\b
大 / 小文字を区別するチェックボックスをオンにして検索をクリックすると、関数名に大文字が含まれる関数のみが検索ツールウィンドウに表示されます。この例では、関数
RETIREDが該当します。
選択した言語に応じて、追加のオプションも利用できます。
例: 次のオプションを確認します。
言語 : リストを使用して、検索に含めるファイルの種類を選択します。この場合は JavaScript です。
ターゲット : リストを使って検索する項目を選択します。この場合は
nameです。
再帰 : 選択すると、WebStorm は再帰検索を実行し、ネストされたすべての項目が結果に含まれます。例: 再帰を有効にしてメソッド呼び出しを検索すると、WebStorm は
foo(foo(foo()))内のネストされた呼び出しを検索します。再帰を無効にすると、外側の呼び出しのみが検索されます。挿入されたコード : 選択すると、HTML 内の JavaScript や Java 内の SQL などの挿入されたコードも検索に含まれます。
大 / 小文字を区別する : 選択すると、検索結果は検索対象の大文字と小文字を一致させます。
検索範囲(プロジェクト、モジュール、ディレクトリ、カスタムスコープ)を指定します。
検索をクリックします。
WebStorm は、検索ツールウィンドウに結果を表示します。

ターゲットを構造的に置き換える
メインメニューで、に移動します。
構造置換ダイアログで、新規または既存のテンプレートを検索に追加し、テンプレート領域を置き換えます。置換テンプレートは、検索テンプレートと同じ方法で保存できます。
置換テンプレート内の変数にフィルターを追加する必要がある場合は、対象の変数にキャレットを置き、フィルター領域を使用してフィルターを管理します。
フィルター領域では、あなたのように選択した内容に応じて、フィルター条件を指定してください。
例: 検索した変数
$name$を取得し、見つかったテンプレートを小文字に置き換える条件を追加しましょう。変数
$name2$を呼び出して、基本的に Groovy スクリプトである次のフィルタースクリプトを追加してみましょう:name.name.toLowerCase()スクリプトが指定されていない場合、WebStorm は新しい変数をハイライトし、マウスをホバーするとスクリプトが不足していることを示すツールヒントが表示されます。

スクリプトの追加リンクをクリックし、開いた編集フィールドでスクリプトを指定します。

置換結果を絞り込むには、次のオプションを選択します。
完全修飾名を短縮する - 完全修飾クラス名を短縮名およびインポートに置き換えます。
再フォーマット - 置き換えられたコードを自動的にフォーマットします。
静的インポートを使用する - 可能であれば、静的インポートを代わりに使用します。
必要なオプションを指定したら、検索をクリックします。WebStorm は検索ツールウィンドウに結果を表示します。
検索ツールウィンドウでは、結果をさらに操作して、見つかったアイテムを 1 つずつ、または一度にすべて置き換えたり、潜在的な変更をプレビューしたりできます。
検索テンプレートを共有する
エクスポートまたはインポートすることで、検索テンプレートを同僚と共有できます。
構造検索ダイアログ()で、新しい検索テンプレートを作成するか、既存のテンプレートを使用します。
テンプレートをエクスポートするには、
をクリックします。WebStorm は、テンプレートの XML 表現をクリップボードに追加します(クリップボードの内容を表示するには、Ctrl+Shift+V を押します)。この表現は、チャット、メール、フォーラムで他の開発者と共有できます。
テンプレートをインポートするには、共有 XML コードを任意の場所(メール、チャット、フォーラム)からコピー(Ctrl+C)し、構造検索ダイアログで
をクリックします。WebStorm は、XML コード表現を取得し、変数とスコープが存在する場合はそれを含むテンプレートに変換します。
関連ページ:
検索テンプレート、修飾子、スクリプトの制約
構造検索用のテンプレートを作成するときは、基本的にスクリプトを作成します。スクリプト作成プロセスを簡素化するために、WebStorm は、検索テンプレートのプロトタイプとして使用できる事前定義された検索テンプレートのリストを提供します。既存の検索と置換テンプレートのリストにアクセスする方法については、構造的な検索と置換のセクションを参照してください。有効な検索または置換テンプレートは、サポートされている次の言語構造の 1 つを表します。式、たとえば、ステートメント、または一連のステートメント、た...
使用箇所の検索
使用箇所の検索アクションを使用すると、コードベース全体でコード要素の参照を検索できます。検索プロセスを管理し、単一のファイルのみを検索したり、検索範囲をプロジェクト全体に拡張したり、特定の検索範囲を作成したりできます。さらに、使用箇所のハイライトの色を設定したり、使用箇所の自動ハイライトを完全に無効にしたりすることもできます。ファイル内の使用箇所を検索する:エディターで検索する要素を選択すると、WebStorm はファイル内で見つかったすべての使用箇所を自動的にハイライトします。このハイライト...