Я использую элемент управления AvalonEdit, и у меня есть небольшая проблема с набором правил xshd (для tex):
В оригинальном файле есть раздел «Определение синтаксиса для документа TeX 2001 Майка Крюгера (gedaned from 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>
Так что если в вашем тексте есть "\%", все, кроме "\" будет окрашено в серый цвет ...
Было бы очень хорошо, если бы эти ключевые слова запрещали правила, например. для '$' и '%', если перед ними стоит '\'.
Что мне делать? Или я не понял наборы правил ...
EDIT
"\\" обрабатывается записью ключевого слова1.
Я нашел
escapecharacter="\"
но это не работает.
EDIT2
С новым определением подсветки синтаксиса, я думаю, проблема та же. Я сравнил свою текстовую подсветку с подсветкой 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>
но это не работает ... Может быть, есть проблема, потому что escape-символ является ?