【发布时间】:2020-08-02 12:19:50
【问题描述】:
我正在使用 AvalonEdit 并致力于为文件添加语法突出显示(语法有点像剃刀)。这是我第一次使用 XSHD 文件,如果这真的很简单,请原谅我。
我遇到的问题可以通过以下示例代码看到:
Not C#
@{
public void DoStuff() {
// C# highlighting here
}
public void DoMoreStuff() {
// C# highlighting here
}
}
在@{ 和} 中,我需要应用C# 语法高亮。所以我在 xshd 中这样做:(简化)
<Span ruleSet="RazorCode" multiline="true">
<Begin color="CodeBlockStartEndTags">\@\{</Begin>
<End color="CodeBlockStartEndTags">\}</End>
</Span>
<RuleSet name="RazorCode">
<Import ruleSet="C#/" />
</RuleSet>
这就是我观察到的:
很明显,<End color="CodeBlockStartEndTags">\}</End> 标记在找到下一个右大括号 } 后立即结束跨度。实际上它应该跳过这个大括号,因为它前面有一个左大括号。
所以我需要它来计算开括号并将它们与闭括号配对,以实际结束正确闭括号上的跨度。
这在 XSHD 中可行吗?
谢谢
【问题讨论】:
标签: .net regex wpf razor avalonedit