为gtksourceview添加一种新语言(Django的gedit模板语言)

时间:2010-07-17 20:15:36

标签: django templates gedit gtksourceview

我遇到了向gtksourceview添加新语言的问题(由gedit使用)。

我想添加Django的模板语言,但有些东西不起作用:
我无法使%} 停止语法着色。

这是一个片段:

<context id="dtl-block" end-at-line-end="true">
    <start>{%</start>
    <end>%}</end>
    <include>
        <context sub-pattern="0" where="start" style-ref="preprocessor"/>
        <context sub-pattern="0" where="end" style-ref="preprocessor"/>
        <context ref="string"/>
        <context ref="chaine"/>
        <context ref="keywords"/>
        <context ref="filters"/>
        <context ref="operators"/>
        <context ref="variable"/>
    </include>
</context>

此代码段的代码正确,但不会停在%} 。 它会在%} 之后继续着色,因此出现了问题。

我制作了一个正在运作的片段:

<context id="variable-block" end-at-line-end="true">
    <start>{{</start>
    <end>}}</end>
    <include>
        <context sub-pattern="0" where="start" style-ref="preprocessor"/>
        <context sub-pattern="0" where="end" style-ref="preprocessor"/>
        <context ref="variable"/>
    </include>
</context>

它运作良好。

{{}} 有效,但%} 则无效。

我尝试使用html实体并使用反斜杠(\),但它不起作用。

有人知道会出现什么问题吗?

感谢。

2 个答案:

答案 0 :(得分:1)

只需将extend-parent="false"用作context属性

即可

答案 1 :(得分:1)

我发现了问题:

在另一个上下文中,正则表达式中有%,因此%}未被解释。