PHPStorm:JS语言注入与模板内的自定义标签

时间:2015-09-11 15:22:28

标签: phpstorm

在PHP项目中需要带有嵌入式javascript的html模板时,我对我找到的任何解决方案都不满意,因此,使用Lodash和一些正则表达式我创建了以下解决方案:

模板:

<script id="profile_greeting" type="text/template">
    <h1>Hello</h1><br>
    My name is <b><@=this.name@></b><br>
    <@ var today = "" + new Date(); @>
    The date is : <@= today @>
</script>

Lodash设置:

_.templateSettings = {
    interpolate: /\<\@\=([\s\S]+?)\@\>/g,
    escape: /\<\@\-([\s\S]+?)\@\>/g,
    evaluate: /\<\@([\s\S]+?)\@\>/g
};

问题:

如何设置PHPStorm以处理&lt; @@&gt;中的任何代码和&lt; @ = @&gt;作为Javascript(语法高亮,代码完成等),同时将外部视为HTML?

注意:

内部代码应视为HTML,&lt; @ @&gt;在此类型的标记内,被视为javascript。

1 个答案:

答案 0 :(得分:3)

Alt+F7并转到Language Injections,然后创建一个根据您的意愿定制的新注射。

也许this可以提供帮助。

修改

我使用正则表达式RegExr来匹配您的愿望(/<@((?:\s|.)*?)@>/gm)。 唯一的麻烦就是如何将它送到PHPStorm ......