言語と参照のインジェクション
言語インジェクションを使用すると、ファイルのメイン言語とは異なるプログラミング言語のコードを操作できます。
WebStorm は、HTML、CSS、XML、JSON、RegExp、文字列とテンプレートリテラル内、XML に似た言語のタグと属性内の他のコードフラグメントを編集するための包括的な言語支援を提供します。
IDE は、言語インジェクションに加えて、文字列リテラルをクラスやファイルなどの他のエンティティへの参照として扱う参照インジェクションもサポートしています。
言語インジェクションを追加する
一時的な言語インジェクションを追加する
言語を挿入する文字列またはテンプレートのリテラル、タグ、属性内にキャレットを配置し、Alt+Enter を押します(またはインテンションアクションアイコン
を使用します)。
言語または参照の挿入を選択し、インジェクションする言語を選択します。

永続的な言語インジェクションを追加する
言語インジェクションコメント (アノテーション) を使用して、インジェクションされた言語の永続的なフラグメントを追加します。
言語をインジェクションするとき、WebStorm はアノテーションを加えることを提案します。提案を受け入れるには Alt+Enter を押します。
ターゲット文字列リテラルの前に空白行を追加し、次のコメントを入力します。
language=<language_ID>コメントについては、インジェクションしたい言語の構文を使用してください。言語 ID は一般的に直感的です。たとえば、SQL、RegExp、XML、HTML などです。
設定で言語 ID を確認することもできます。Ctrl+Alt+S を押して設定を開き、を選択します。言語のインジェクションルールをダブルクリックすると、言語 ID が ID フィールドに指定されます。
(オプション) コメントに接頭辞または接尾辞を含めます。
// language=<language_ID> prefix=<prefix> suffix=<suffix>これは次の場合に必要です:
文字列は不完全 / 部分的な SQL 文です
文字列は、サポートされている呼び出し(
select /where)など)で直接使用されていません。
挿入された言語フラグメントを編集する
WebStorm を使用すると、挿入された言語フラグメントを専用のエディターで編集できます。
フラグメントエディターを開く
挿入されたコード部分内にキャレットを置き、Alt+Enter を押します (またはインテンションアクションアイコン
を使用します)。
<言語 ID> フラグメントの編集を選択します。
WebStorm は、インジェクションされた言語でコードを編集するための専用エディターセクションを開きます。このエディターは、コード補完、インスペクション、インテンションアクション、コードスタイルアクションを含む完全なコーディング支援機能を提供します。
参照を挿入する
参照挿入は、文字列リテラルを他のファイルへのリンクとして解釈します。
例: 任意のリテラル文字列内のファイルパスは、ファイルへの参照として扱うことができます。
一時的な参照インジェクションを追加する
参照を挿入する文字列またはテンプレートリテラル内にキャレットを置き、Alt+Enter を押します (またはインテンションアクションアイコン
を使用します)。
言語または参照の挿入を選択し、オプションを選択します。例:
ファイル参照 : 指定されたファイルへの参照を追加します。
インストールしたプラグインによっては、他の参照オプションが利用できる場合があります。
永続的な参照インジェクションを追加する
コメントを使用して永続的な参照インジェクションを追加します。
ターゲット文字列リテラルの前に空白行を追加し、必要な値を含む
// language=コメントを入力します。// language=file-referenceはファイルへの参照を追加します。
インジェクションをキャンセルする
コードフラグメントにキャレットを置き、Alt+Enter を押して、リストからを選択します。

あるいは、インジェクションコメントを削除するだけです。
インテンションアクションバルブアイコンを無効にする
エディターでインテンションアクションアイコン を非表示にするには、次の手順を実行します。
Ctrl+Alt+S を押して設定を開き、を選択します。
インテンションバルブを表示するチェックボックスをクリアします。
変更を適用し、ダイアログを閉じます。
自動インジェクションのルールを構成する
WebStorm には、IDE がコード内の特定の場所に言語を自動的に挿入するための事前定義されたルールのセットがあります。
エディター | 言語インジェクション設定ページ Ctrl+Alt+S で言語インジェクションルールを設定できます。
定義済みのすべてのインジェクションルールはビルトインスコープ用に設定されています。言い換えれば、それらはグローバルです(したがってすべての WebStorm プロジェクトで利用可能です)。カスタムルールは IDE または 1 つのプロジェクトに対してのみ設定できます。カスタムインジェクションの範囲を変更するには、 を使用してください。
VCS を介してカスタムルールを共有するには、ツールバーの対応するオプションを使用して、カスタムルールをプロジェクトスコープに移動します。そうすることで、バージョン管理下に置くことができるカスタムルールを使用して IntelliLang.xml という名前の新しいファイルを .idea ディレクトリに作成します。

VCS を使用しない場合は、ルールを XML ファイルにエクスポートして(ツールバーの をクリック)、別のプロジェクトにインポートすることで、ルールを共有できます。
カスタムインジェクションルールを設定するには、 をクリックして新しいルールを追加するか、あらかじめ定義されたルールをコピーして設定を変更します。
カスタムインジェクションルールの設定
以下のいずれか 1 つを実行します:
新しいルールを作成するには、ツールバーの
をクリックし、ルールを適用するコンテキストを選択します。

既存のルールを編集するには、そのルールを選択し、ツールバーの
をクリックします。

既存のルールに基づいてルールを作成するには、ベースとなるルールを選択し、ツールバーの
をクリックし、コピーを選択してツールバーの
をクリックします。

言語インジェクション設定ダイアログが開きます。ダイアログ内のコントロールは、選択したインジェクションタイプによって異なります。
インジェクションする言語の ID または名前を指定してください。
オプションで、挿入の前後に追加する文字シーケンスである接頭辞と接尾辞を指定します。これは、不完全な断片をラップするために必要になる場合があります。次のコード断片があるとします。
const query = "SELECT * FROM users WHERE id = ?";接頭辞として
SELECT、接尾辞として;を挿入できます。あるいは、挿入言語としてJSONを選択した場合は、接頭辞と接尾辞として波括弧と{}のペアを指定することもできます。ルール型に応じて、配置パターンまたはテンプレートタグフィールドに、WebStorm がリテラルをインジェクションとして認識するコンテキストを定義するルールを入力します。ルールは、関数引数、変数初期化子、オブジェクトプロパティ、JSX 属性などを対象とすることができます。
例 1 - JavaScript の文字列引数
psiParameter().withName("query")例 2 - タグ付きテンプレート
psiElement(JSStringTemplateExpression)ルールはプログラム構造インターフェースパターンから構築されており、実際には内部 WebStorm 言語のメソッドの連鎖呼び出しです。WebStorm が扱うように、プログラム構造インターフェースはファイルの構造を示します。
定義済みのインジェクションルールを編集する場合、パターンはすでに指定されています。これにより、生産性と使いやすさが向上します。新しい設定を作成するよりも、これらの設定を利用することをお勧めします。
オプション:
詳細設定領域では、追加設定を指定することで、インジェクションルールが適用されるコンテキストを絞り込み、インジェクションプロセスをよりきめ細かく制御できるようになります。
値パターンフィールドに、言語を挿入するコンテキストを決定する正規表現を入力します。パターンの最初のキャプチャーグループを挿入対象として使用することで、特定のパターンに一致する値、パターンに一致する複数の部分にのみ言語を挿入するように手順を構成できます。
例:
^javascript:(.*)は、ハイパーリンクの hrefs で JavaScript コードを実行するために使用できるjavascriptプロトコルと一致します。単一ファイル - このオプションがオフの場合、値のパターンに一致するフラグメントは、たとえばフラグメントエディターの観点から、別々の「ファイル」として別々に扱われます。
このオプションがオンの場合、対応するフラグメントはすべてマージされて単一のユニット、つまり「ファイル」になります。
値のパターンを考える
xxx (.+) yyy (.+) zzzそしてフラグメント
xxx select * yyy from family zzz,このオプションがオフの場合、
select *とfrom familyは 2 つの独立したフラグメント(または「ファイル」)として扱われます。このオプションがオンの場合、select * from familyは単一のユニットまたは「ファイル」として扱われます。
XML タグおよび XML 属性のインジェクションルールについては、言語インジェクション設定ダイアログ: XML タグの挿入および言語インジェクション設定ダイアログ: XML 属性の挿入を参照してください。
関連ページ:
PSI ビューアー
PSI ビューアーを使用すると、WebStorm によって解釈されるため、ソースコードの内部構造を調べることができます。PSI ビューアーを有効にするメニューからを選択するか、ウェルカム画面で構成をクリックしてからカスタムプロパティの編集を選択します。WebStorm は、構成ディレクトリに空の idea.properties ファイルを作成し、新しいエディタータブで開きます。プラットフォームプロパティの構成から詳細を参照してください。idea.properties ファイルにと入力します。WebSt...
言語インジェクション設定ダイアログ: XML タグの挿入
名前注入の名前。言語インジェクションされる言語。ID: 挿入する言語の ID または名前を選択します。接頭辞: 対応する文字列値の前に追加する文字のシーケンスを指定します。接尾辞: 対応する文字列値の後に追加する文字のシーケンスを指定します。接頭辞と接尾辞はオプションです。XML タグこの領域では、このタグで囲まれたテキストを選択した言語として扱う必要があることを示す XML タグを定義します。ローカル名: 名前空間接頭辞なしでタグ名を指定します。正規表現を使用して、複数のタグ名、大文字と小文字...
変更の保存と復元
WebStorm は、ファイルに加えた変更を自動的に保存します。保存は、実行、デバッグ、バージョン管理操作の実行、ファイルまたはプロジェクトのクローズ、IDE の終了などのさまざまなイベントによってトリガーされます。ファイルの保存は、サードパーティのプラグインによってトリガーすることもできます。自動保存をトリガーするイベントのほとんどは事前定義されており、構成することはできませんが、変更が失われることはなく、ローカル履歴ですべてを見つけることができます。自動保存動作を設定する設定ダイアログで、を...
イメージ
WebStorm では、イメージを表示する方法がいくつか用意されています。ナビゲーションを使用してイメージを取得したり、外部のグラフィカルエディターでイメージを開くことができます。WebStorm は、PGN、JPG、GIF など、一般的なイメージ形式をすべてサポートしています。サポートされているファイルタイプの完全なリストは、設定 () で確認できます。に移動し、リストでイメージを見つけてください。WebStorm のファイルタイプの詳細については、ファイルタイプの関連付けを参照してください。W...