2010-06-10 5 views
0

Je souhaite pouvoir colorer différemment les lignes en fonction du caractère de départ.TextMate: Mise en forme conditionnelle?

par exemple .:

- This is line 1 
- This is line 2 
x This is line 3 
- This is line 4 
x This is line 5 

Ainsi, les lignes 1,2,4 (commençant par '-') devrait être bleu tandis que les lignes 3,5 (commençant par 'x') devrait être rouge.

Est-ce possible? Comment le feriez-vous?

Merci.

+0

Légèrement sans rapport note: La principale raison pour laquelle je voulais cette fonctionnalité est de coder en couleur une liste de tâches. Récemment, j'ai trouvé que textmate a un bundle TODO intégré qui vous permet d'afficher une liste de tâches dans tous vos fichiers de projet. Ajoutez juste une ligne avec TODO: ou FIXME: ou CHANGED :, etc et elle sera automatiquement ajoutée à la liste des tâches. Il suffit de regarder sous "TODO" dans la liste des bundles. – nebs

Répondre

0

Vous pouvez définir la couleur en définissant une nouvelle grammaire. Ma grammaire contient les éléments suivants:

{ scopeName = 'text.todo'; 
    fileTypes = ('todo'); 
    foldingStartMarker = '\{\s*$'; 
    foldingStopMarker = '^\s*\}'; 
    patterns = (
     { name = 'constant'; 
      match = '^\s*(-.*)$'; 
     }, 
     { name = 'variable.other.constant'; 
      match = '^\s*(x.*)$'; 
     }, 
    ); 
} 

J'ai créé le champ text.todo et attribué cette grammaire à un fichier qui est nommé « foo.todo ».

Le premier motif indique "toute quantité d'espaces, suivie d'un tiret et de tout ce qui suit". Cette correspondance est appelée "constante", ainsi TextMate utilisera la couleur qui est définie pour cette étendue dans "Préférences"> "Polices & Couleurs". Les constantes sont bleues dans mon thème.

Le second motif nécessite un "x" au lieu d'un tiret et appelle la correspondance "variable.other.constant", qui est rouge dans mon thème. Il devrait être facile pour vous de prolonger d'ici. Si vous avez besoin d'aide, appuyez simplement sur le point d'interrogation sous votre définition grammaticale.

Questions connexes