DataGrip 2018.3ヘルプ

言語インジェクション

言語注入は、XMLのような言語でタグや属性だけでなく、文字列リテラル内のコードを扱うことを可能にします。

文字列リテラル、タグ、または属性内に正式な言語(HTML、CSS、XML、RegExpなど)がある場合、その部分を編集するための包括的な言語支援を利用できます。

一時的に言語を挿入する

  1. 言語を挿入して Alt+Enter を押す(またはインテンションのアクションアイコン icons actions intentionBulb svgを使用する)ストリングリテラル、タグ、または属性の中にカーソルを置きます。

  2. 言語または参照を注入をクリックし、注入する言語を選択します。

    sql inject html

専用エディタセクションでコードフラグメントを開く

  1. 注入された言語のコードにカーソルを置き、 Alt+Enter を押します(またはインテンションアクションアイコン icons actions intentionBulb svgを使用します)。

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

    DataGripは、注入された言語でコードを編集するための専用のエディタセクションを開きます。このエディタは、コード補完、インスペクション、インテンション、コードスタイルのアクションなど、完全なコードアシスタンスを提供します。

    sql injected html editor

言語注入コメントを使用する

  • ターゲット文字列リテラルの前に空白行を追加し、次のコメントを入力します。
    -- language=<language_ID>

    コメントには、注入する言語の構文を使用します。言語IDは一般に直感的です。MySQL、RegExp、XML、HTML。

    sql injection comment html

言語フラグメントは、フラグメントを構文的に完全な言語単位に変換するラッパーとして一緒に作用する接頭語および接尾辞と組み合わせることができます。コードを編集するときは、プレフィックスと接尾辞はフラグメントエディタでのみ表示されます。メインエディタには表示されません。

接頭辞と接尾辞は、次のように注入コメントに含めることができます。

// language=<language_ID> prefix=<prefix> suffix=<suffix>
sql injection comment html prefixes

XMLとJSONを自動的に挿入する

XMLおよびJSONタイプとして定義されている値の場合、対応する言語が自動的に挿入されます。

言語を自動的に挿入するには、式で型を宣言します(XMLやJSONなど)。

sql auto inject xml

ユーザー定義のデータ型の言語を挿入する

ユーザー定義データ型のパターンを作成し、それらのパターンを言語と関連付けることができます。パターンに一致するデータ型の場合、DataGripは指定された言語を自動的に注入します。

  1. カスタムデータ型(たとえば、 MY_CUSTOM_DATA_TYPE)を宣言します。

  2. 引用符で値をクリックし、 Alt+Enterを押します。

  3. 型で注入するを選択し、注入する言語を選択します(たとえば、XML (XML ファイル))。

  4. タイプパターンフィールドに、カスタムデータ型に使用するパターンの正規表現を入力します(たとえば、 (?i).* 正規表現を使用します)。

sql mydata xml injected

注入ルールを設定する

DataGrip設定(Ctrl+Alt+S)のエディター | 言語インジェクションページで言語注入ルールを設定できます。

Language injections settings

ビルトインスコープ用に事前定義された注入ルールがすべて設定されています。言い換えれば、それらはグローバルであり(したがって、すべてのDataGripプロジェクトで利用可能です)。カスタムルールは、IDEまたは1つのプロジェクトに対してのみ設定できます。カスタム注入の範囲を変更するには、 icons toolbarDecorator import svg アイコンを使用します。

カスタム注入ルールを設定するには、 icons general add svg をクリックして新しいルールを追加するか、あらかじめ定義されたルールをコピーして設定を変更します。

注入をキャンセルする

  1. カーソルをコードフラグメントに置き、 Alt+Enter を押します(または、インテンションアクションアイコン icons actions intentionBulb svgを使用します)。

  2. 言語/参照の注入解除を選択します。

言語インジェクションをキャンセルするには、インジェクションコメントまたは注釈を削除することもできます。

最終更新日: 2018年11月28日

関連事項