2

我在向 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 实体和反斜杠 (\),但它不起作用。

有人知道可能是什么问题吗?

谢谢。

4

2 回答 2

1

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

于 2011-08-23T11:04:56.063 回答
1

我发现了问题:

在另一种情况下,正则%表达式中有 a,因此%}未解释。

于 2013-01-10T00:49:12.547 回答