【发布时间】:2022-01-19 16:35:45
【问题描述】:
我正在编写 V 的语法,它定义了与 Go 语法相似的方法,其中:
fn (o MyStruct) my_function(a int) {
// ...
}
我可能会使用类似的东西(我会将其分解为push,但只是为了简洁):
variables:
ident: \b[A-Za-z_][A-Za-z_0-9]*\b
contexts:
fn:
- match: (fn)\s*\({{ident}}\s*({{ident}})\)\s*({{ident}})
captures:
1: keyword
2: entity.name.type.v
3: entity.name.function.v
但问题是MyStruct 和my_function 是分开索引的,所以同名的方法(str() 是一个很好的例子)不会被索引器区分。有没有办法可以将它们组合成一个价值为MyStruct.my_function 的entity.name.function.v?
我知道我可以将整个定义视为实体,但这太冗长并且在拆分为多行时不起作用:
captures:
0: entity.name.function.v
【问题讨论】:
标签: sublimetext3 sublimetext sublime-text-plugin