我浪费了很多时间试图弄清楚这一点,阅读了多篇文章,但没有任何运气。
我正在尝试做的是在带引号的字符串中突出显示自定义令牌。
前任:
Dim code As String = "SELECT G123C432 FROM table WHERE G321C234 = G87C1"
我已经导入了 vb.net 语言语法到 ace,没关系,但现在我想强调G123C432
、G321C234
和G87C1
。
vb.net 语法文件具有带引号的字符串的以下标记:
"#quotedString": [{
token: "string.quoted.double.vbnet",
regex: /"(?:[^"]|"")*"/
}]
我添加了这个规则:
"#mlkField": [{
token: "mlkfield.vbnet",
regex: /G[d]+C[d]+/
}]
我已经尝试过正则表达式G[d]+C[d]+
但是在String
中找到它不起作用。
预期最终结果示例:编辑器代码段
对
字符串使用单独的状态
"#quotedString": [{
token: "string",
regex: /"/,
push: [{
token: "mlkfield.vbnet",
regex: /G[d]+C[d]+/
}, {
token: "string",
regex: /"/,
next: "pop"
}, {
defaultToken: "string"
}]
}]