我正在gtksourceview中为PARI/GP编写一个语法高亮显示文件。有一个方面让我陷入困境:我只想在另一个关键词中突出显示某些关键词。特别是,我想在中突出显示一种"日志"
log(x)
(其中log
表示对数)和中的另一个
default(log, 1)
(其中log
指的是日志文件)。这似乎正是<context>
的设计目的,所以我写了
<context id="default" style-ref="keyword">
<start>defaults*(</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根本没有突出显示语法)。我做错了什么?(是的,我已经在上面定义了字符串、小数、浮点和注释多行上下文。)
有两个问题:内部上下文需要位于<include>
块内部,并且<start>
和<end>
中的括号需要转义。