可以或如何在TextMate语法的单个规则的“名称”或“ contentName”字段中指定多个范围,尤其是针对TextMate 2?
我想在一条规则中指定多个范围,因为有多种方法可以引用相同的标记/标点,并且不同的主题无法完全支持它们。
我已经在VS Code的范围规范之间成功使用了空格,但是这里的问题是TextMate正确地实际支持什么?我想确保该方法与TextMate兼容,但是找不到有关此问题的任何文档。 Atom不支持此功能。
这是有关字符串插值子语句运算符$( )
的PowerShell规则的一个示例,该规则在VS Code中成功运行,允许不同的主题突出显示它们所能做到的最好,最好是punctuation.section.embedded.substatement.begin.powershell
,这就是为什么其最后列出的内容,因为它包含“嵌入式”参考。
interpolation:
begin: "(\\$)(\\()"
beginCaptures:
"1":
name: "keyword.other.substatement.powershell punctuation.definition.substatement.powershell punctuation.section.embedded.substatement.begin.powershell"
"2":
name: "punctuation.section.group.begin.powershell punctuation.section.embedded.substatement.begin.powershell"
contentName: "interpolated.complex.source.powershell"
end: "\\)"
endCaptures:
"0":
name: "punctuation.section.group.end.powershell punctuation.section.embedded.substatement.end.powershell"
name: "meta.embedded.substatement.powershell"
patterns: [
{
include: "$self"
}
]