我正在为PARI / GP在gtksourceview中编写一个突出显示文件的语法。有一个方面让我陷入困境:我想只在内部另一个关键字时突出显示某些关键字。特别是,我希望在
中对“log”进行一种突出显示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根本没有语法高亮)。我做错了什么? (是的,我已经定义了上面的字符串,十进制,浮点数和注释多行上下文。)
答案 0 :(得分:0)
有两个问题:内部上下文需要位于<include>
块内,<start>
和<end>
中的括号需要转义。