使用Avalon Edit,我正在寻找一种方法来提供一种高亮格式,同时在已经格式化的东西里面。
也就是说,我想在引号内高亮显示,但在这些引号内,我有另一种语法可以添加,它的开头是 ${
并以 }
.
默认情况下,语法高亮似乎在进入'begin'后就停止了,直到到达结尾时才会寻找其他语法。
<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>
A <Span>
转到另一个 <RuleSet>
在该跨度内处于活动状态。默认情况下,这是一个空的规则集,所以没有其他的规则被激活。
如果你想让一个规则在跨度内应用,可以把它移到嵌套的规则集中。
<Span color="ParamName">
<Begin>"</Begin>
<End>(?=:)</End>
<RuleSet>
<Span color="Variable" multiline="false">
<Begin>\${</Begin>
<End>}</End>
</Span>
</RuleSet>
</Span>