PhpStorm 2026.1 Help

言語と参照のインジェクション

言語インジェクションを使用すると、ファイルのメイン言語とは異なるプログラミング言語のコードを操作できます。

文字列リテラルに言語 (HTML、CSS、XML、RegExp など) を挿入すると、それがプロジェクトのメイン言語でなくても、挿入されたコードに対する包括的なコーディング支援が得られます。

IDE は、言語インジェクションに加えて、文字列リテラルをクラスやファイルなどの他のエンティティへの参照として扱う参照インジェクションもサポートしています。

言語インジェクションを追加する

一時的な言語インジェクションを追加する

  1. 言語を挿入したい文字列リテラル、タグ、属性内にキャレットを置き、 Alt+Enter を押します (または インテンションアクション アイコン intention action icon を使用します)。

  2. 言語または参照の挿入 を選択し、インジェクションする言語を選択します。

    Inject HTML

永続的な言語インジェクションを追加する

言語インジェクションコメント (アノテーション) を使用して、インジェクションされた言語の永続的なフラグメントを追加します。

  • ターゲット文字列リテラルの前に空白行を追加し、次のコメントを入力してください:

    // language=<language_ID>
    CSS injection comment

    コメントには、挿入したい言語の構文を使ってください。 言語 ID は一般的に直感的で、たとえば SQL、RegExp、XML、HTML などです。

    設定で言語 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 などです。

    Injecting inside nowdoc/heredoc

挿入された言語フラグメントを編集する

PhpStorm を使うと、挿入された言語フラグメントを専用エディターで編集できます。

フラグメントエディターを開く

  1. 挿入されたコード部分内にキャレットを置き、 Alt+Enter を押します (または インテンションアクション アイコン intention action icon を使用します)。

  2. <言語 ID> フラグメントの編集 を選択します。

    PhpStorm でインジェクションされた言語でコードを編集する専用エディターセクションが開きます。 このエディターは、コード補完、インスペクション、インテンションアクション、コードスタイルアクションなどの充実したコーディング支援機能を提供します。

    Edit the HTML fragment in the dedicated editor

参照を挿入する

参照インジェクションは、文字列リテラルをファイルなどの他のエンティティへのリンクとして解釈します。

例: 任意のリテラル文字列内のファイルパスは、ファイルへの参照として扱うことができます。

Inject reference to file

一時的な参照インジェクションを追加する

  1. 参照を挿入したい文字列リテラル内にキャレットを置き、 Alt+Enter を押します (または インテンションアクション アイコン intention action icon を使用します)。

  2. 言語または参照の挿入 を選択して、オプションを選んでください。例えば:

    • ファイル参照: 指定されたファイルへの参照を追加します。

    インストールしているプラグインによっては、ほかの参照オプションが利用できる場合があります。

永続的な参照インジェクションを追加する

コメントを使用して永続的な参照インジェクションを追加します。

  • ターゲット文字列リテラルの前に空白行を追加し、必要な値を含む // language= コメントを入力します。

    • // language=file-reference はファイルへの参照を追加します。

インジェクションをキャンセルする

永続的な言語インジェクションをキャンセルする

言語インジェクションをキャンセルするには、それを導入するために使用したコメント (アノテーション) を削除します。

    一時的な言語挿入をキャンセルする

    1. キャレットをコード片に配置し、 Alt+Enter を押します (または インテンションアクション アイコン the intention action button を使用します)。

    2. 言語または参照の挿入解除 を選択します。

    インテンションアクションバルブアイコンを無効にする

    エディターでインテンションアクションアイコン インテンションアクションアイコン を非表示にするには、次の手順を実行します。

    1. Ctrl+Alt+S を押して設定を開き、 エディター | 一般 | 外観 を選択します。

    2. インテンションバルブを表示する チェックボックスをクリアします。

    3. 変更を適用して、ダイアログを閉じます。

    自動インジェクションのルールを構成する

    PhpStorm には、IDE がコード内の特定の場所に言語を自動で挿入するための事前定義されたルール設定があります。

    エディター|言語インジェクション 設定ページ&#xa0; Ctrl+Alt+S で言語インジェクションルールを設定できます。

    定義済みのすべてのインジェクションルールは ビルトイン スコープ用に設定されています。 つまり、それらはグローバル(したがってすべての PhpStorm プロジェクトで利用できます)。 カスタムルールは IDE または 1 つのプロジェクトに対してのみ設定できます。 カスタムインジェクションの範囲を変更するには、 プロジェクト/IDE スコープへの移動ボタン を使用してください。

    VCS を介してカスタムルールを共有するには、ツールバーの対応するオプションを使用して、カスタムルールを プロジェクト スコープに移動します。 そうすることで、バージョン管理下に置くことができるカスタムルールを使用して IntelliLang.xml という名前の新しいファイルを .idea ディレクトリに作成します。

    VCS を使用しない場合は、ルールを XML ファイルにエクスポートして(ツールバーの エクスポート​​ をクリック)、別のプロジェクトにインポートすることで、ルールを共有できます。

    カスタムインジェクションルールを設定するには、 追加ボタン をクリックして新しいルールを追加するか、あらかじめ定義されたルールをコピーして設定を変更します。

    2026 年 5 月 22 日