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

永続的な言語インジェクションを追加する
言語インジェクションコメント (アノテーション) を使用して、インジェクションされた言語の永続的なフラグメントを追加します。
ターゲット文字列リテラルの前に空白行を追加し、次のコメントを入力します。
// language=<language_ID>
挿入したい言語のコメント構文ではなく、追加先のファイルのコメント構文でコメントを記述してください。 言語 ID は、たとえば注入可能な言語のリストで PhpStorm が表示する言語名と異なる場合があります。
言語 ID を見つけるには、コメント内の
language=の後にキャレットを置き、 Ctrl+Space を押します。 補完リストには、注入可能なすべての言語の ID が、言語名とともに丸括弧内に表示されます。設定で言語 ID を確認することもできます。 Ctrl+Alt+S を押して設定を開き、 を選択します。 言語のインジェクションルールをダブルクリックすると、言語 ID が ID フィールドに指定されます。
(オプション) コメントに接頭辞または接尾辞を含めます。
// language=<language_ID> prefix=<prefix> suffix=<suffix>これは次の場合に必要です:
文字列は不完全 / 部分的な SQL 文です
文字列は、サポートされている呼び出し(
select /where)など)で直接使用されていません。
nowdoc/heredoc 文字列の中に言語を挿入する
PHP のコンテキストでは、 nowdoc(英語)/heredoc(英語) 文字列内に言語を挿入できます。
heredoc/nowdoc 文字列を入力し、挿入したい言語 ID にマーカーを設定します。 言語 ID は一般的に直感的で、たとえば SQL、RegExp、XML、HTML などです。

挿入された言語フラグメントを編集する
PhpStorm を使用すると、挿入された言語フラグメントを専用のエディターで編集できます。
フラグメントエディターを開く
挿入されたコード部分内にキャレットを置き、 Alt+Enter を押します (またはインテンションアクションアイコン
を使用します)。
<language ID> フラグメントの編集 を選択します。
PhpStorm は、インジェクションされた言語でコードを編集するための専用エディターセクションを開きます。 このエディターは、コード補完、インスペクション、インテンションアクション、コードスタイルアクションを含む完全なコーディング支援を提供します。

参照を挿入する
参照インジェクションは、文字列リテラルをファイルなどの他のエンティティへのリンクとして解釈します。
例: 任意のリテラル文字列内のファイルパスは、ファイルへの参照として扱うことができます。

一時的な参照インジェクションを追加する
リファレンスを注入したい文字列リテラル内にキャレットを配置し、 Alt+Enter を押します(またはインテンションアクションアイコン
を使用します)。
言語または参照の挿入 を選択し、オプションを選択します。例:
ファイル参照: 指定されたファイルへの参照を追加します。
インストールしているプラグインに応じて、他の参照オプションが使用できる場合があります。
永続的な参照インジェクションを追加する
コメントを使用して永続的な参照インジェクションを追加します。
ターゲット文字列リテラルの前に空白行を追加し、必要な値を含む
// language=コメントを入力します。// language=file-referenceはファイルへの参照を追加します。
インジェクションをキャンセルする
永続的な言語インジェクションをキャンセルする
言語インジェクションをキャンセルするには、それを導入するために使用したコメント (アノテーション) を削除します。
一時的な言語挿入をキャンセルする
キャレットをコードの一部に配置して Alt+Enter を押す(またはインテンションアクションアイコン
を使用する)。
言語または参照の挿入解除 を選択します。
インテンションアクションバルブアイコンを無効にする
エディターでインテンションアクションアイコン を非表示にするには、次の手順を実行します。
Ctrl+Alt+S を押して設定を開き、 を選択します。
インテンションバルブを表示する のチェックボックスをオフにします。
変更を適用し、ダイアログを閉じます。
自動インジェクションのルールを構成する
IntelliJ IDEA には、IDE がコード内の特定の場所に言語を自動的に挿入するための事前定義されたルールのセットがあります。
エディター | 言語インジェクション 設定ページ Ctrl+Alt+S で言語インジェクションルールを設定できます。
定義済みのすべてのインジェクションルールは ビルトイン スコープ用に設定されています。 言い換えれば、それらはグローバルです(したがってすべての PhpStorm プロジェクトで利用可能です)。 カスタムルールは IDE または 1 つのプロジェクトに対してのみ設定できます。 カスタムインジェクションの範囲を変更するには、 を使用してください。
VCS を介してカスタムルールを共有するには、ツールバーの対応するオプションを使用して、カスタムルールを Project スコープに移動します。 そうすることで、バージョン管理下に置くことができるカスタムルールを使用して IntelliLang.xml という名前の新しいファイルを .idea ディレクトリに作成します。
VCS を使用しない場合は、ルールを XML ファイルにエクスポートし (ツールバーの をクリック)、別のプロジェクトにインポートすることで共有できます。
カスタムインジェクションルールを設定するには、 をクリックして新しいルールを追加するか、あらかじめ定義されたルールをコピーして設定を変更します。