С 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>