有没有办法在一个PhpStorm文件中使用多种语言?

有没有办法在一个PhpStorm文件中使用多种语言?,phpstorm,drupal-8,Phpstorm,Drupal 8,所以我有一个潜在的新用例。我试图采用一种单一文件组件的方法来为Drupal8内容创建代码和模板。有一个很好的Drupal模块可以实现这一点(),但我想改进PhpStorm 2020.1中这些文件的代码提示和语法突出显示 我必须使用.sfc扩展名。我在PHP文件类型中添加了这个扩展,在大多数情况下,一切都按预期进行。该文件以XHTML开头,然后是一个PHP部分。HTML/XHTML和PHP都被正确地突出显示和暗示。.sfc文件还包含JavaScript和CSS,这两个部分也被正确地突出显示和暗示,

所以我有一个潜在的新用例。我试图采用一种单一文件组件的方法来为Drupal8内容创建代码和模板。有一个很好的Drupal模块可以实现这一点(),但我想改进PhpStorm 2020.1中这些文件的代码提示和语法突出显示

我必须使用
.sfc
扩展名。我在PHP文件类型中添加了这个扩展,在大多数情况下,一切都按预期进行。该文件以XHTML开头,然后是一个PHP部分。HTML/XHTML和PHP都被正确地突出显示和暗示。.sfc文件还包含JavaScript和CSS,这两个部分也被正确地突出显示和暗示,可能是因为它们是由PhpStorm的XHTML或PHP识别处理的

这些文件如下所示:


测试内容
这是一些测试内容

.考试班{ 背景色:红色; } log('JavaScript-attached'); SCSS——是的,小树枝——不是

小枝:

不可能,因为它不是一种可注入语言,它是一种模板语言,只能作为其他语言的“主”语言使用。例如,在这里检查可注入PHP字符串的细枝的注释:)

您可以尝试使用Handlebar/Mustache(单独的插件):它具有类似于细枝的语法,因此至少可以覆盖一些语法(它是可注入的)

SCSS:

使用
,以便IDE能够以不同于标准普通CSS的方式识别此CSS(自2017.1版起提供:)

在较旧版本(2016.3及更旧版本)中,您还需要创建自定义语言注入规则,如下所示:


正如@LazyOne向我解释的,我可以通过将我的
.sfc
文件更改为如下方式来解决SCSS问题:


.考试班{
背景色:红色;
p:最后一个孩子{
页边距底部:0;
}
}

目前,使用PhpStorm将细枝模板语言注入到另一种语言中似乎是不可能的。我打开了一个功能请求,看看是否可以启用它:

SCSS——是的,Twig——不是,因为它不是一种可注入语言(在IDE中的实现方式)——您不能将它注入字符串或任何其他地方,它只能与实际文件一起工作(其中整个文件被视为Twig文件..但您不能将PHP插入其中..)SCSS似乎也不起作用。可能是因为标记强制将代码识别为CSS。对于
:1)中的SCS,请使用
,以便IDE可以以不同于标准普通CSS的方式识别此代码。2) 创建自定义语言注入规则,将SCS注入此类标记中:P.S.很可能不再需要步骤#2(但我恰好在多年前创建了此类规则…)P.P.S.用于Twig--也许您可以使用另一种类似Twig的语言?Mustache或类似的东西(需要单独的插件;可能是以所需的方式实现的,可以在需要的地方注入)。我还没有测试过这个,所以不能肯定,但值得一试。我没想过要尝试
。这无疑使SCSS代码块工作正常。即使没有添加自定义语言注入规则。