【发布时间】:2020-04-24 08:25:38
【问题描述】:
使用 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>
【问题讨论】:
-
您可能想解释一下您显示的 Xml sn-ps 是 Avalon Edit 的语法高亮定义语言 - 对吧?
标签: wpf syntax-highlighting avalonedit