言語インジェクションと参照インジェクション},{
言語インジェクションを使用すると、ファイルのメイン言語とは異なるプログラミング言語のコードを扱えます。},{
文字列リテラルに言語 (HTML、CSS、XML、RegExp など) を挿入すると、プロジェクトのメイン言語でなくても、挿入されたコードに対して包括的なコーディング支援を受けることができます。
言語インジェクションに加えて、IDE は参照インジェクションもサポートしており、文字列リテラルをクラスやファイルなどの他のエンティティへの参照として扱います。},{
言語インジェクションを追加する
一時的な言語インジェクションを追加する
言語を挿入する文字列リテラル、タグ、属性内にキャレットを配置し、 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)など)で直接使用されていません。
言語インジェクションのアノテーション付け
JetBrains アノテーションライブラリの @Language アノテーションを使用して、メンバーやパラメーターなどのコード要素に言語インジェクションとしてアノテーションを付けることができます。 これにより、IDE で適切なハイライト表示、ナビゲーション、検索が可能になります。
例: アノテーションパラメーターを Java メソッドを参照するものとしてマークできます。
IntelliJ IDEA は、アノテーションが付けられた文字列をメソッド名として認識し、アノテーションが付けられた要素で 名前変更リファクタリングやその他の機能を使用できるようにします。

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

参照を注入する},{
参照インジェクションは、文字列リテラルをクラス、メソッド、フィールド、ファイルなどの他のエンティティへのリンクとして解釈します。},{
たとえば、 com.example.MyClass のような文字列は Java クラスへの参照として解決され、 resources/config.json はファイルへの参照として扱われます。},{
一時的な参照インジェクションを追加する},{
リファレンスを注入したい文字列リテラル内にキャレットを配置し、 Alt+Enter を押します(またはインテンションアクションアイコン
を使用します)。
言語または参照の挿入 を選択し、オプションを選択します。例:},{
ファイル参照 :指定したファイルへの参照を追加します。},{
JVM クラス名 :指定したクラスへの参照を追加します。},{
JVM フィールド名 :フィールドへの参照を追加します。},{
JVM メソッド名 :メソッドへの参照を追加します。},{
インストールしているプラグインに応じて、他の参照オプションが使用できる場合があります。たとえば、HTTP メソッド、ヘッダー、または URL 参照を注入できることがあります。},{ たとえば、HTTP メソッド、ヘッダー、または URL 参照を注入できることがあります。},{

永続的な参照インジェクションを追加する},{
コメントを使用して、永続的な参照インジェクションを追加します。},{
ターゲット文字列リテラルの前に空白行を追加し、必要な値を指定して
// language=コメントを入力します。},{// language=file-referenceはファイルへの参照を追加します。},{// language=jvm-class-nameはクラスへの参照を追加します。},{// language=jvm-filed-nameはフィールドへの参照を追加します。},{// language=jvm-method-nameはメソッドへの参照を追加します。},{
例:
public class FileReference { public static void main(String[] args) { // language=file-reference printFilePath("src/main/resources/config.properties"); } }または
public class ClassReference { public static void main(String[] args) { //language=jvm-class-name String className = "java.util.ArrayList"; } }
注入をキャンセルする
永続的な言語インジェクションをキャンセルする
言語インジェクションをキャンセルするには、それを導入するために使用したコメント (アノテーション) を削除します。
一時的な言語挿入をキャンセルする
キャレットをコードの一部に配置して Alt+Enter を押す(またはインテンションアクションアイコン
を使用する)。
言語または参照の挿入解除 を選択します。
インテーションアクション電球アイコンを無効にする
エディターでインテンションアクションアイコン を非表示にするには、次の手順を実行します。
Ctrl+Alt+S を押して設定を開き、 を選択します。
インテンションバルブを表示する のチェックボックスをオフにします。
変更を適用して、ダイアログを閉じます。
自動注入のルールを設定する
IntelliJ IDEA には、IDE がコード内の特定の場所に言語を自動的に挿入するための事前定義されたルールのセットがあります。
エディター | 言語インジェクション 設定ページ Ctrl+Alt+S で言語インジェクションルールを設定できます。

すべての事前定義されたインジェクションルールは、 ビルトイン スコープ用に構成されています。 言い換えれば、それらはグローバルです(したがって、すべての IntelliJ IDEA プロジェクトで使用可能です)。 カスタムルールは、IDE または 1 つのプロジェクトのみに対して構成できます。 カスタムインジェクションの範囲を変更するには、 を使用してください。
VCS を介してカスタムルールを共有するには、ツールバーの対応するオプションを使用して、カスタムルールを プロジェクト スコープに移動します。 そうすることで、バージョン管理下に置くことができるカスタムルールを使用して IntelliLang.xml という名前の新しいファイルを .idea ディレクトリに作成します。
VCS を使用しない場合は、ルールを XML ファイルにエクスポートして(ツールバーの をクリック)、別のプロジェクトにインポートすることで、ルールを共有できます。
カスタムインジェクションルールを設定するには、 をクリックして新しいルールを追加するか、あらかじめ定義されたルールをコピーして設定を変更します。