我在Symfony应用程序中使用Ractive模板。
由于我的Ractive模板位于.twig文件中,因此我无法在Ractive值周围使用花括号,因此我使用Ractive的custom delimiters
例如,<p>{{text}}</p>
变为<p>[[text]]</p>
。
它工作得很好,但我的问题是PhpStorm不会将括号识别为模板值,这会导致一些恼人的后果:
没有语法着色,缩进被搞砸了,并且有警告应该没有。
如何让PhpStorm将我的双括号解释为模板值?
编辑:代码示例:
<script type="text">
$(function () {
var a = new Analytics();
a.site = '{{ site.id }}'; {# Twig #}
a.run();
});
</script>
{# Below is ractive #}
<table class="table">
<tr class="general">
<th></th>
[[#each columns: i]]
[[#if stats]]
<th>[[trans('column.' + columns[i])]]</th>
[[/if]]
[[/each]]
</tr>
[[> totalLine]]
[[#each templates: t]]
[[> templateLine]]
[[/each]]
</table>
答案 0 :(得分:0)
这是XY problem的一个例子。
真正的问题(&#34; X问题&#34;)是Ract语法,特别是{{ }}
,被解析器视为Twig。这可以通过将Ractive模板包装在verbatim
部分周围来解决,以防止Twig像Twig那样处理Ractive模板。
&#34; Y问题&#34;源于你试图解决&#34; X问题&#34;。也就是说,使用自定义分隔符时,IDE语法会突出显示。
为什么Ractive模板上的{{ }}
语法突出显示起作用是因为Twig的语法涉及{{ }}
。然而,突出显示对Ractive一无所知。恰好两种语言都使用{{ }}
,类似于语法荧光笔认为它的Twig ......以及像Twig这样的样式。
此外,大多数(如果不是全部)IDE仅支持单语高亮显示。由于您的文件被视为Twig模板,因此它会突出显示Twig。是否应支持多语言语法突出显示由IDE供应商确定,并且您无法做任何事情(除非您自己制作插件)。
答案 1 :(得分:0)