我正在尝试进行VS Code扩展,以突出显示花粉标记文件。这些是带有嵌入式变量和Racket代码的纯文本文件。变量具有这样的语法(然后由预处理器拼接成文本):
Some text ◊variable-name text continued
并且可以使用类似的语法嵌入Racket函数:
One plus two is ◊(number->string (+ 1 2)).
我有一个支持Racket语法的tmLanguage文件,还有一个支持Pollen语法(文本+变量+带有source.racket的嵌入式函数)的tmlLanguage文件。我也希望它能正确地突出显示此代码,但无法想到一个干净的解决方案:
◊n plus ◊m is ◊(number->string (+ ◊n ◊m)).
换句话说,花粉语法中的球拍语法中的花粉语法中。是否可以仅在花粉方面实现这种语法高亮显示,而无需制作特殊的source.racket文件来支持嵌入式花粉代码?
像是先突出显示球拍,然后再 再次浏览文本,用花粉规则突出显示(并覆盖当前颜色,如果存在的话)吗?
答案 0 :(得分:0)
我发现了injections
,这是一个完全符合我需要的顶层子句:
"injections": {
"L:meta.function-call.racket": {
"patterns": [
{
"include": "text.pollen"
}
]
}
},
它会在每个{ "include": "text.pollen" }
范围内注入一个meta.function-call.racket
-无需我编辑使用该范围的每个位置(这很有用,因为在很多地方和在另一个文件中。)
更多信息可以在in this thread in Atom's forums和in this gist describing a making-of grammar for Atom中找到。