今回はIntelliJのLanguage Injectionsという機能を使ってみたいと思います。
IntelliJの細かい設定や操作の詳細は公式ドキュメントを参考にしてください。
Language Injectionsとは
Language Injectionsとは、文字列の中でJSON,やSQLなどの言語を記述する際に、文法チェックや補完などをIDEがおこなってくれたり、文字列の中の言語をより書きやすくしてくれる機能です。
Language Injectionsを使わない場合
例えば文字列の中でJSONを記述しようとすると、以下のようにダブルクオーテションをエスケープしながら記述する必要があるのですが、これを手で書いていくのはなかなかつらいと思います。
また、以下のようにJSONの文法エラーとなるような記述をしても、文字列として扱われるためIDEはエラーと認識しません。
Language Injectionsを有効にするとこういった不便な問題を解決することができます。
Language Injectionsを使った場合
まず、空の文字列を記述して、カーソルを文字列に合わせた状態でalt + returnを押して、以下を表示させます。
Inject language or referenceをクリックして、JSONを選択します。
もう一度文字列にカーソルを合わせてalt + returnを押すと、Edit JSON Fragmentが表示されるのでクリックします。
クリックすると、JSON Fragementというviewが表示されます。そこに生のJSONを記述すると、実際のコードの文字列の中でも自動的にダブルクオーテーションがエスケープされた状態でJSONが同時に記述されます。
また、この状態で文字列の中にJSONの文法エラーとなるような記述を書くと以下のようにIDEがエラーを表示してくれるのでとても便利です。
おわりに
今回はJSONのケースを紹介しましたが、SQLでは候補予測や補完が有効になったり、他にもxmlやyaml, JPAのJPQLやJiraのJQLなど様々な言語に対応しているので、ぜひ試してみると良いと思います。