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

时间:2015-12-11 19:36:40

标签: gtk syntax-highlighting gedit gtksourceview pari-gp

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

1 个答案:

答案 0 :(得分:0)

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