提问人:AnHeuermann 提问时间:6/29/2023 最后编辑:AnHeuermann 更新时间:6/29/2023 访问量:38
VS Code 中的“普通代码/文本”使用什么 TextMate 作用域?
What TextMate scope is used for "normal code/text" in VS Code?
问:
我正在尝试为一种可以在任何字符串中插入代码段的语言创建一个 TextMate 语法。因此,任何字符串之间和内部的所有内容都是“正常”代码,可以再次包含字符串。
我想使用 VS Code 扩展的语法。<%
%>
我的多行字符串用 - 括起来。<<
>>
我认为不可能处理任意深度的这种情况,所以我很乐意让它适用于嵌套到一定深度的简单情况。
以下代码的模式是什么样子的?
<<
This is some string
<%This is normal code
<<
This is more <%Normal code%>string <%More code%>
>>%>
And of course more string
>>
我尝试使用以下内容:myLanguage.tmGrammar.yaml
name: myLanguage
scopeName: source.myLanguage
patterns:
- begin: <<
end: ">>"
name: string.quoted.double
patterns:
- begin: <%
end: "%>"
include: source.myLanguage
- begin: <%
end: "%>"
name: variable # <--- What is the name for "default code"?
patterns:
- begin: <<
end: ">>"
include: source.myLanguage
它大部分有效,但我需要使用“普通”代码而不是突出显示。keyword
答:
0赞
AnHeuermann
6/29/2023
#1
我听从了建议,查看了 JavaScript 的 TestMate 语法,并根据我的语言调整了反引号字符串。
下面是生成的语法:
name: myLanguage
scopeName: source.myLanguage
patterns:
- include: '#strings'
repository:
strings:
begin: '<<'
end: '>>'
name: string.quoted.double
patterns:
- include: '#interpolation'
interpolation:
begin: '<%'
end: '%>'
contentName: source.myLanguage
name: meta.embedded
patterns:
- include: $self
普通代码部分将突出显示为普通文本。
在此基础上,我能够在 --blocks 内的“普通代码”部分进行更多突出显示。<%
&>
评论
>>
source
source.<your language's ID>
f