我遇到了向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实体并使用反斜杠(\),但它不起作用。
有人知道会出现什么问题吗?
感谢。
答案 0 :(得分:1)
只需将extend-parent="false"
用作context
属性
答案 1 :(得分:1)
我发现了问题:
在另一个上下文中,正则表达式中有%
,因此%}
未被解释。