2010-11-09 19 views
2

我使用的AvalonEdit控制和我有一个小问题与xshd-规则集(用于TEX):AvalonEdit XSHD-规则集(用于TEX)

有原始文件“syntaxdefinition的部分由Mike Krueger于2001年收集的关于特殊关键字的TeX文档“(来自Jedit)',我想知道如何正确使用它们。

<!-- some commands must be handled specially --> 
    <KeyWords name = "Keyword1" bold = "false" italic = "false" color = "Blue"> 
    <Key word = "\$" /> 
    <Key word = "\\" /> 
    <Key word = "\%" /> 
    </KeyWords> 

我虽然是关键字将蓝色,并且只有此处理,但其他规则处理部分这些关键字了。例如

<Span name = "LineComment" color = "SlateGray" stopateol = "true"> 
    <Begin>%</Begin> 
    </Span> 

所以,如果你在你的文字都超越了“\”会被灰色的“\%” ...

这将是非常好的,如果关键字例如禁止规则如果之前有'\'则为'$'和'%'。

我该怎么办?或者没有我理解的规则集...

编辑

“\\”是由关键字1项进行处理。 < MarkFollowing ...不适用于“\\”,但<范围...仍在为“\ $”和“\%”突出显示。

我发现

escapecharacter="\" 

,但它不工作。

EDIT2

随着新的语法高亮定义问题是我想的一样。我将我的tex突出显示与c#突出显示进行了比较。在C#中,我们有:

<Span color="String"> 
    <Begin>"</Begin> 
    <End>"</End> 
    <RuleSet> 
     <!-- span for escape sequences --> 
     <Span begin="\\" end="."/> 
    </RuleSet> 
</Span> 

我不使用SharpDevelop的,但我认为它的工作,这突出显示并没有失败,如果我逃跑像字符”因此,在我的文件很相似。像

<Span foreground="#FF708090" fontWeight="normal" fontStyle="italic"> 
    <Begin>%</Begin> 
    <RuleSet> 
     <Span begin="\\" end="." /> 
    </RuleSet> 
</Span> 

,但它不工作...也许是有问题的,因为转义字符是<规则>?

回答

1

尝试移植文件到新的格式,请参阅http://community.sharpdevelop.net/forums/p/10468/28886.aspx#28886详细内容。

在新格式中,您可以在规则中使用正则表达式,这应该比使用关键字/ MarkFollowing伪造TeX构造更好。

在你的EDIT2上: 如果你希望\是TeX代码中的一个转义序列(在注释前面,而不是字符串/注释中的转义符号),然后使用主规则集:

<Span begin="\\" end="."/> 
<Span foreground="#FF708090" fontWeight="normal" fontStyle="italic"> 
    <Begin>%</Begin> 
</Span> 
+0

谢谢。现在我正在使用新的xshd文件,但我很确定如何解决我的问题... – zee 2010-11-14 19:49:36