在其他关键字中嵌入关键字:gtksourceview 中的上下文

Embedding keywords in other keywords: context in gtksourceview

我正在为 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 根本没有语法高亮)。我做错了什么? (是的,我已经在上面定义了字符串、小数、浮点数和注释多行上下文。)

有两个问题:内部上下文需要在 <include> 块内,<start><end> 中的括号需要转义。