Я пишу файл подсветки синтаксиса в gtksourceview для PARI/GP. Есть один аспект, который меня застрял: я хочу выделить определенные ключевые слова только внутри другого ключевого слова. В частности, мне нужен один вид выделения для «журнала» в
log(x)
(где log
означает логарифм) и еще один в
default(log, 1)
(где log
относится к файлам журнала). Кажется, именно для этого и был разработан <context>
, поэтому я написал
<context id="default" style-ref="keyword">
<start>default\s*(</start>
<end>)</end>
<include>
<context id="in-default" style-ref="defaults">
<keyword>log</keyword>
...
<keyword>timer</keyword>
</context>
</include>
<context ref="string"/>
<context ref="decimal"/>
<context ref="float"/>
<context ref="comment-multiline"/>
<context id="meta-comment" style-ref="comment">
<match>\s*\(([^()]+)\)</match>
</context>
</context>
но это не удалось молча (gedit вообще не выделял синтаксис). Что я сделал не так? (Да, я определил строковый, десятичный, плавающий и многострочный контексты выше.)
<context>
и<include>
, он заработает (но не сможет справиться с упомянутым различием). - person Charles   schedule 11.12.2015