借助Avalon Edit,我正在寻找一种在已格式化的内容中提供突出显示格式的方法。
也就是说,我想在引号中突出显示内容,但是在这些引号中,我可以添加另一种语法,该语法以${
开始,以}
结尾。
默认情况下,语法高亮显示一旦进入“开始”就停止,并且直到到达末尾才查找其他任何内容。
<Span color="ParamName">
<Begin>"</Begin>
<End>(?=:)</End>
</Span>
<Span color="Variable" multiline="false">
<Begin>\${</Begin>
<End>}</End>
</Span>
因此,这里${
语法只有在ParamName
("
)内时才被着色。有没有一种方法可以使我的变量突出显示即使在ParamName
中也可以工作(是的,ParamName
来自JSON格式,我希望无论突出显示在JSON中的什么位置,我的突出显示都可以工作语法)?
完整的荧光笔代码:
<Keywords color="Digits" >
<Word>true</Word>
<Word>false</Word>
</Keywords>
<Span color="Value" multiline="true">
<Begin>
(?<=:)\040?"[^"]*
</Begin>
<End>"</End>
</Span>
<Span color="ParamName">
<Begin>"</Begin>
<End>(?=:)</End>
</Span>
<Span color="Variable" multiline="false">
<Begin>\${</Begin>
<End>}</End>
</Span>
<Rule color="Digits">\b0[xX][0-9a-fA-F]+|(\b\d+(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?</Rule>
答案 0 :(得分:1)
一个<Span>
切换到该范围内处于活动状态的另一个<RuleSet>
。默认情况下,这是一个空规则集,因此没有其他活动。
如果您要在范围内应用规则,请将其移至嵌套规则集:
<Span color="ParamName">
<Begin>"</Begin>
<End>(?=:)</End>
<RuleSet>
<Span color="Variable" multiline="false">
<Begin>\${</Begin>
<End>}</End>
</Span>
</RuleSet>
</Span>