2010-07-17 13 views
2

J'ai eu un problème pour ajouter une nouvelle langue à gtksourceview (utilisé par gedit).Ajouter une nouvelle langue à gtksourceview (langage gabarit de Django pour gedit)

Je veux ajouter le langage de template de Django et quelque chose ne fonctionne pas:
Je ne suis pas en mesure de faire %} arrêter la coloration syntaxique.

Voici un extrait:

<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> 

Cette couleur d'extrait correctement mon code, mais il ne se contente pas %}. Il continue à colorer après %}, il y a donc quelque chose qui ne va pas.

J'ai fait un extrait qui travaille:

<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> 

Il fonctionne très bien.

{{ et }} œuvres, mais %} ne fonctionne pas.

J'ai essayé avec des entités html et avec une barre oblique inverse (\) et cela ne fonctionne pas. Est-ce que quelqu'un sait quel pourrait être le problème?

Merci.

+0

Ce serait bien si vous pouviez partager votre fichier de syntaxe de langage gtksourceview quelque part (ou peut-être que vous le faites déjà?). – JanC

+0

Oui, je l'ai fait partager. Vous pouvez le trouver dans le premier message de ce fil de discussion: http://www.siteduzero.com/forum-83-541444-p1-utilisez-gedit-pour-vos-projets-django.html Vous devez cliquer sur "(cliquez pour afficher)" pour le voir. Les explications sont en français (utilisez donc Google Traduction si vous en avez besoin). Je suis content que vous le trouviez utile. – antoyo

Répondre

1

J'ai trouvé le problème:

dans un autre contexte, il y avait un % dans une expression rationnelle, de sorte que le %} n'a pas été interprétée.

1

Il suffit d'utiliser extend-parent="false" comme context attribut

+1

J'ai résolu mon problème. Regardez la première ligne de la question. – antoyo

+0

Ok, j'ai compris. Cependant, je suppose, ma réponse peut être une solution dans les cas avec des symptômes similaires, mais une autre raison, alors je demande à laisser ici) –