Edited at

IntelliJ・WebStrom・PhpStorm等のJetBrains製IDEで、文字列の直前に「language=JSON」と書くと、その文字列にJSONのシンタックスハイライトが効いて便利だった。

IntelliJやWebStrom、PhpStormなどのJetBrains製IDEで、文字列の前に// language=JSONというコメントをつけると、IDEが文字列をJSONとして認識してくれるため、


  • JSONとしてのシンタックスハイライト

  • JSON構文エラーの警告

  • JSONのコード補完

  • コード整形

といった、地の文でJSONを書いたときにIDEがやってくれるような恩恵を享受できるようになる。

この機能はLanguage Injectionと呼ばれるもの。コメントが書ける大抵の言語なら、JavaでもPHPでもJavaScriptでもScalaでも使えるようだ。

この機能はJSONに限ったものでなく、language=SQLlanguage=HTMLなどのlanguage_IDを指定することで他の言語にも対応可能。

// language=<language_ID>


PHPは@langが使える

PHPではPhpDocの@langでもLanguage Injectionすることができる。


Javaなどでは@Languageアノテーションが使える

JavaやGroovy、Kotlinではorg.jetbrains:annotationsをMavenなどの依存に追加することで、@Languageアノテーションを使うことができる。Scalaには対応していない様子。


参考文献


所感