PhpStorm 2026.1 Help

IntelliLang の設定

構成

設定ダイアログには、以下のオプションがあります。

  • XML テキストの言語インジェクション

  • XML 属性の言語インジェクション

  • メソッドパラメーターの言語インジェクション

  • 認識されたベースアノテーションの名前とランタイム中にパターン検証がどのように実行されるかを変更するための高度な設定。

スクリーンショット

以下のスクリーンショットは、調整可能な構成オプションの一部を示しており、これについては次のセクションで説明します。

サムネイル _intellilang-attr-config.png
サムネイル
サムネイル _intellilang-advanced-config.png

言語インジェクション

設定 ダイアログ (Ctrl+Alt+S) で エディター|言語インジェクション に移動します。 このダイアログでは、XML テキスト、属性、メソッドパラメーターの言語インジェクション機能を構成できます。 ツールバーのボタンまたはコンテキストメニューのアクションを使用して、新しいエントリを追加、削除、コピー、インポートします。 新しいエントリを追加するには、最初に適切なグループを選択する必要があります。

エントリの並べ替えは、 上へ移動 ボタンと 下へ移動 ボタンで可能です。 これは、さまざまな XML インジェクションエントリの優先順位を定義するために重要になる場合があります。 エントリが一致した場合、インジェクションで 値パターンが指定されていない限り、これ以上インジェクションは適用されません。

XML テキスト

をクリックして、リストから XML 属性の挿入 を選択します。 新しい XML インジェクションを追加したら、インジェクトする言語の ID を選択し、オプションでインジェクションのコンテキストを構成する接頭辞 / 接尾辞を指定します。

XML タグペインで、選択した言語として扱う必要があるテキストを囲む XML タグのローカル名 (名前空間接頭辞 のない名前) と名前空間 URI を指定します。 名前フィールドは空であってはなりませんが、 名前空間フィールドはオプションです。

ローカル名 フィールドには正規表現を指定できるため、例えば複数のタグ名(name1|name2 )、大文字・小文字を区別しない名前(例えば、 (?i)tagnametagnameTagNameにも一致)などを設定できます。 マッチに影響するため、空白文字は入力しないでください。

XML 属性

これは XML テキスト構成と似ています。 ただし、 名前XML タグを空にしておくこともでき、この場合、構成は含まれる XML タグに関係なく、設定された名前に一致するすべての属性に適用されます。

属性の名前には属性のローカル名を指定し、正規表現としても指定できます。 名前に「on.*」と指定することで、HTML イベントハンドラー属性と一致させることができます。 属性名が空の場合(タグ名も空でない限り)、構成はそのタグに含まれるすべての属性に適用されます。

高度な XML オプション

XML テキストと属性の 詳細ペインでは、インジェクションプロセスをさらに細かく制御できます。

値パターン

このフィールドは、XML テキストまたは属性の値のどの部分に言語をインジェクションすべきかを決定する正規表現をとります。 これは、特定のパターンと一致する値にのみ言語を挿入するため、またはパターンに一致する複数の部分に言語を挿入するために使用できます。 これは、パターンの最初のキャプチャーグループをインジェクションのターゲットとして使用して行います。

例:

[$#]\{(.*?)\}

これは、JSP/JSF 表現言語で使用されるパターンに一致します。

^javascript:(.*)

これは、ハイパーリンク hrefs で JS コードを実行するために使用できる javascript -protocol と一致します。

XPath 条件

このフィールドには、名前と名前空間 URI を指定するだけでなく、より正確にインジェクションターゲットを指定するために使用できる XPath 式が使用されます。 式が評価されるコンテキストは、XML テキストインジェクションのための周囲の XML タグと、XML 属性インジェクションのための属性そのものです。

例:

lower-case(@type)='text/javascript'

これは、 属性が値 "text/javascript" を含むタグへのインジェクションを制限します。

lower-case() などの XPath 拡張関数(英語)を使用することができます。 また、現在のファイルの名前、拡張子、ファイルの種類を判別するために使用できる 3 つの追加関数、 file-name()file-ext()file-type() があります。 通常のコード補完を使用して、使用可能な関数のリストを取得することもできます。

メソッドパラメーター

これは、何らかの理由でインジェクションアノテーションを使用できない場合、IntelliLang の機能を利用する機能があります。 これは主にサードパーティ / ライブラリメソッドの設定、および Java 1.4 を使用する必要があるプロジェクトの設定に適用されます。

言語の選択は、上で説明したものと同じです。 特定のメソッドの 1 つ以上のパラメーターを選択するには、まず、名前を入力するか (テキストフィールドは補完をサポートします)、[...] ボタンから利用できるクラス選択機能を使用して、そのメソッドを含むクラスを選択します。 次に、「メソッド名」ペイン内の [...] ボタンを使用してメソッドを選択します (メソッド名を手動で編集することはできません)。 メソッドを選択すると、 パラメーターペインのテーブルに、選択したメソッドのパラメーターが入力されます。 最初の列のチェックボックスをオンにすると、選択した言語がこのパラメーターに渡される引数に挿入されます。 選択できるのは文字列型のパラメーターのみであることに注意してください。

よく知られているいくつかのメソッドの引数を有効な正規表現にするための IntelliJ IDEA-core(インスペクション Gadgets ではなく)インスペクションがすでにあります。 ただし、IntelliLang は、より詳細なエラーメッセージと正規表現サポートプラグインのすべての機能を提供することができます。

一部の標準 XPath-API でデフォルトで構成されている XPath 言語は、XPathView + XSLT-Support プラグインによって提供されており、 こちらから利用できます。

設定エントリのインポート

別の PhpStorm インストールからインジェクション構成をインポートするには、ツールバーの インポートボタンを使用して、 IDEA-CONFIG-HOME/options から "IntelliLang.xml" ファイルを選択するか、あるいはエクスポート済み(ファイル | IDE 設定の管理 | 設定のエクスポート経由)PhpStorm 設定を含む JAR ファイルから選択します。 ファイルを選択すると、新しいダイアログにそのファイルに含まれるエントリが表示されます。 削除-button を使用して、インポートしたくないすべてのエントリを削除します。 これによって、選択した構成ファイルは変更され ないことに注意してください。

この選択的インポート機能により、コアのファイル | 設定のインポートのアクションで設定をインポートする場合のようにローカルエントリを失うことなく、チーム内で特定の構成を簡単に共有できます。

一貫性のないデータを防ぐために、インポートは、既存の構成が変更されていないか、 適用ボタンで保存されている場合にのみ可能です。

詳細設定

詳細設定タブでは、使用する基本アノテーションに異なる名前を指定できます。 これは、これが望ましくない、または不可能な場合に、外部コードへの依存を避けるのに役立ちます。 カスタムアノテーションは、元のものと同じプロパティ、すなわちすべてに対する 、および @Language の置き換え用にオプション(デフォルト = "")の 接頭辞接尾辞 を提供する必要があります。

@パターン 検証のためにプラグインが生成すべきランタイムチェックの種類を設定することもできます:

  • 計装なし: チェックは挿入されず、コンパイルされたクラスファイルには触れません

  • アサート​​ を使用したインスツルメンテーション: パターン検証は -ea JVM スイッチで制御され、 AssertionError をスローします。 頻繁に呼び出されるメソッドのパフォーマンスに悪影響を与える可能性があるため、これが推奨される方法です。

  • IllegalArgument-(メソッドパラメーター用)および IllegalStateExceptions(戻り値用)を使用した計測。 これは PhpStorm の @NotNull 計測と同じです。

提供される構成

追加の設定はここからダウンロードしてインポートできます。 このコミュニティ効果は、構成作業を最小限に抑え、IntelliLang をさらに使いやすくできます。

2026 年 5 月 22 日