Добавьте новый язык в gtksourceview (язык шаблонов Django для gedit) - PullRequest
2 голосов
/ 18 июля 2010

У меня проблема с добавлением нового языка в 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 ]

1 голос
/ 10 января 2013

Я нашел проблему:

в другом контексте, в регулярном выражении было %, поэтому %} не было интерпретировано.

1 голос
/ 23 августа 2011

Просто используйте extend-parent="false" как context атрибут

...