J'essaie de mettre en évidence une langue personnalisée dans TextMate. Cependant, la définition suivante ne met pas en évidence des insertions PHP (je sélectionner pour mes fichiers * .serpent):Impossible de mettre en surbrillance la syntaxe personnalisée dans TextMate
{ scopeName = 'source.serpent';
fileTypes = ('serpent');
patterns = (
{ begin = '<\?';
end = '\?>';
patterns = ({ include = 'source.php'; });
},
);
}
Si je sélectionne le langage PHP, alors les parties PHP sont mises en évidence.
Quelle peut être la raison? Cela devrait-il fonctionner? Je considérais également les insertions ruby avec <%%> délimiteurs, mais cela ne fonctionne pas avec la configuration la plus simple.
Mise à jour
Apparemment, il est une question de PHP uniquement. La définition de langue suivante met en évidence les langues Ruby et Serpent dans mon texte, mais pas les insertions PHP! Quel est le problème ici?
{ scopeName = 'source.phpruby.serpent';
fileTypes = ('serpent', 'serpent.php', 'serpent.erb');
patterns = (
{ begin = '<\?(php|=)?';
end = '\?>';
patterns = ({ include = 'source.php'; });
},
{ begin = '<%';
end = '%>';
patterns = ({ include = 'source.ruby'; });
},
{ include = 'source.serpent'; },
);
}
Je l'ai fait travailler en remplaçant source.php aveC#language dans mes motifs et en copiant le référentiel du langage PHP.
Il y avait un code qui ne fonctionnait pas pendant un moment, mais il a été corrigé. – Andrei