如何使PhpStorm解释自定义分隔符?

如何使PhpStorm解释自定义分隔符?,phpstorm,brackets,jetbrains-ide,ractivejs,Phpstorm,Brackets,Jetbrains Ide,Ractivejs,我在我的Symfony应用程序中使用Ractive模板 由于我的Ractive模板位于.twig文件中,我不能在我的Ractive值周围使用大括号,所以我使用Ractive的 例如,{{text}变成[[text]]] 它工作得很好,但我的问题是PhpStorm无法将括号识别为模板值,这会导致一些恼人的后果: 没有语法着色,缩进混乱,并且在不应该出现的地方有警告 如何使PhpStorm将双括号解释为模板值? 编辑:代码示例: <script type="text"> $(f

我在我的Symfony应用程序中使用Ractive模板

由于我的Ractive模板位于.twig文件中,我不能在我的Ractive值周围使用大括号,所以我使用Ractive的

例如,
{{text}

变成
[[text]]]

它工作得很好,但我的问题是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>

$(函数(){
var a=新分析();
a、 site='{site.id}}'{{#Twig}
a、 run();
});
{#下面的内容很吸引人}
[#每列:i]]
[[if stats]]
[[trans('列'.+列[i])]]
[/if]]
[/每个]]
[>Totaline]]
[#每个模板:t]]
[>templateLine]]
[/每个]]
这是一个示例

真正的问题(“X问题”)是抽象语法,特别是
{{}}
,被解析器视为细枝。这可以通过在一个部分周围包裹Ractive模板来解决,以防止细枝将该Ractive模板视为细枝

“Y问题”源于你试图解决“X问题”。也就是说,使用自定义分隔符时IDE语法高亮显示

Ractive模板上突出显示的
{{}
语法之所以有效,是因为Twig的语法涉及
{}
。然而,突出显示对Ractive一无所知。碰巧这两种语言都以类似的方式使用
{{}
,语法高亮者认为它是细枝。。。还有像树枝一样的样式

此外,大多数IDE(如果不是所有IDE的话)只支持单语言高亮显示。由于您的文件被视为细枝模板,因此它会突出显示细枝。是否支持多语言语法突出显示由您的IDEs供应商决定,对此您无能为力(当然,除非您自己制作插件)。

这是一个示例

真正的问题(“X问题”)是抽象语法,特别是
{{}}
,被解析器视为细枝。这可以通过在一个部分周围包裹Ractive模板来解决,以防止细枝将该Ractive模板视为细枝

“Y问题”源于你试图解决“X问题”。也就是说,使用自定义分隔符时IDE语法高亮显示

Ractive模板上突出显示的
{{}
语法之所以有效,是因为Twig的语法涉及
{}
。然而,突出显示对Ractive一无所知。碰巧这两种语言都以类似的方式使用
{{}
,语法高亮者认为它是细枝。。。还有像树枝一样的样式


此外,大多数IDE(如果不是所有IDE的话)只支持单语言高亮显示。由于您的文件被视为细枝模板,因此它会突出显示细枝。是否支持多语言语法突出显示是由您的IDE供应商决定的,对此您无能为力(当然,除非您自己制作插件)。

我也有同样的问题,与VueJS和Twig花括号有关

我找到的唯一解决方案是使用tab按钮自动完成
[[
构造,使其显示为
[[[u]]]]


我也有同样的问题,关于VueJS和Twig花括号

我找到的唯一解决方案是使用tab按钮自动完成
[[
构造,使其显示为
[[[u]]]]


所以..模板中有模板,对吗?“正常”模板由服务器端的Twig处理..然后在客户端/浏览器中,内部模板被另一个引擎处理/使用…这一切都很好。不过,如果能看到这样的示例代码(我可以在测试项目中复制粘贴并使用它的文件)就好了1) 我只是不认为IDE支持这样的“模板内模板”处理,即使这两个模板引擎是分别支持的(例如,通过单独的插件:细枝和把手/胡子)。我猜因为2)把手/胡子插件(例如)没有选项页。所以你无法配置要使用的大括号(与Twig相同;只有Blade/Smarty有这样的定制)。我想,除了上述票据(也检查相关票据)之外,您还会对这些票据感兴趣:1)2)非常感谢,顺便说一句,我添加了一个代码示例,文件名是什么(主要是扩展名)您正在使用--file.html.twig?这样..模板中有模板,对吗?“正常”模板由服务器端的twig处理..然后在客户端/浏览器中,内部模板由另一个引擎处理/使用..这一切都很好。不过看到这样的示例代码会很好(一个我可以在我的测试项目中复制粘贴并使用的文件)1)我只是不认为IDE支持这样的“模板内模板”处理,即使两个模板引擎是分别支持的(例如,通过单独的插件:树枝和把手/胡子)。我猜是因为2)把手/胡子插件(例如)没有选项页..因此您无法配置要使用的大括号(与Twig相同;只有Blade/Smarty有这样的自定义)。我想,除了上述票据(也检查相关票据)之外,您还会对这些票据感兴趣:1)2)非常感谢,顺便提一下,我添加了一个代码示例文件名(主要是扩展名)您正在使用--file.html.twig之类的东西?实际上,X问题并不是一个真正的问题,而是一个事实:我使用自定义分隔符,我无法更改它们,因为这是一个大型团队项目,而不是个人项目。I c