<script> 元素内容的自定义语法突出显示取决于 IntelliJ IDEA 中的类型属性

Custom syntax highlighting for content of <script> elements depending on type attribute in IntelliJ IDEA

在IDEA中,编辑HTML文件时,<script>元素的文本内容会被IDE根据[=12]区别对待=] 属性。例如,<script type="text/javascript"> 元素的文本内容被视为 Javascript 并照此突出显示; <script type="text/css"> 和 CSS、<script type="application/json"> 和 JSON 以及其他类似。

如何配置自定义 <script type="..."> 语言关联?

具体来说,我希望 IDEA 将 "x-shader/x-fragment" 类型的脚本元素的文本内容视为 GLSL。我安装了 GLSL 语言插件,但它只突出显示 .glsl 个文件。我正在使用 IntelliJ IDEA 14.0.3.

注意:与其他 HTML 元素不同,Inject Language/Reference 元素的内容没有选项。

您无法配置它,但在 GLSL 插件中修复它很简单。在用于 GLSL (here) 的语言 class 中,"x-shader/x-fragment" MIME 类型需要作为第二个参数传递给基础 class 构造函数。

Yole 的答案可能最适合您的用例,但我实际上 运行 遇到了类似的问题,其中 Intellij 没有像我想要的那样将 "text/babel" 视为 "text/jsx"。

如果您不介意将脚本内容移动到另一个文件,您可以这样做:

<script type="x-shader/x-fragment" src="your_script.glsl"></script>

当然,当您编辑文件时,您会得到正确的语法突出显示。