JeuWeb - Crée ton jeu par navigateur
Sublime Text 2 - Désactiver la coloration du HTML en coloration pour PHP - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Sublime Text 2 - Désactiver la coloration du HTML en coloration pour PHP (/showthread.php?tid=6352)



Sublime Text 2 - Désactiver la coloration du HTML en coloration pour PHP - niahoo - 25-08-2012

Salut les gens,

Je suis en train d'éditer un fichier PHP sur sublime text, et c'est une vue sans moteur de template où on affiche des variables au coeur du HTML avec des trucs genre

<?php echo $machin ?>
<?php foreach ( ... ): ?>

Dans le mode de coloration que j'ai choisi les deux langages mélangés ça fait vraiment de la soupe de couleurs. (Je ne cherche pas a débattre de la technique de template choisie, je n'ai pas le choix)

Je voudrais donc pouvoir désactiver la coloration pour les zones HTML et n'avoir que le code PHP qui soit coloré. Est-ce que quelqu'un possède un tel mode, ou saurait comment le configurer ?

Merci


RE: Sublime Text 2 - Désactiver la coloration du HTML en coloration pour PHP - Maks - 25-08-2012

Faut trifouiller le XML de ton thème principal pour choisir le style de tel ou tel élément du langage. Pour savoir à quoi correspond la partie HTML dans le PHP il faut jeter un oeil au .tmpLanguage (je crois que c'est ça) correspondant, là où il ya les expressions régulières et leur description.

Grâce à ça j'ai fait quelques bricoles sur le CoffeeScript comme afficher en violet "super", "this" et "@" en rose, #{} en blanc...


RE: Sublime Text 2 - Désactiver la coloration du HTML en coloration pour PHP - niahoo - 25-08-2012

OK merci je vais aller jetter un oeil.

Sérieux, le fichier fait 3 429 lignes de XML !

Faut "juste jetter un oeil " hein .. Wink

Hmm à priorii il y a moyen d'utiliser comme base HTML.tmLanguage, qui a l'air moins hard.

Cool la doc est prévue pour du JSON c'est pratique Smile

Bon en tout cas merci pour ta réponse c'est ce qu'il me fallait !

Notez que si quelqu'un à un truc tout prêt je prends aussi Smile


RE: Sublime Text 2 - Désactiver la coloration du HTML en coloration pour PHP - Maks - 26-08-2012

C'est un peu l'horreur ces gros XML ouais !

Un peu de détails quand même :

Sous Windows (note : AppData est caché par défaut)

C:\Users\Maxence\AppData\Roaming\Sublime Text 2\Packages\PHP\PHP.tmLanguage

Ici il y a les expressions régulières. Par exemple :


<string>(?=\s*\b(?iSadextends)))|$</string>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.class.implements.php</string>
</dict>
</dict>
<key>match</key>
<string>,\s*([a-zA-Z0-9_]+)\s*</string>
</dict>
</array>

Bon là faut regarder un peu le regex, visiblement c'est pour le mot clé "extends" (des fois faut faire des tests, c'est pas toujours évident, les REGEX sont parfois compliqués). Il faut retenir "support.class.implements.php" ici

Après il faut aller dans (en ajustant le thème utilisé bien sûr)

C:\Users\Maxence\AppData\Roaming\Sublime Text 2\Packages\Color Schema - Default\Monokai.tmTheme

Et rajoute quelque part dans le XML (en respectant l'arborescence bien sûr) quelque chose comme :


<dict>
<key>name</key>
<string>extends (PHP)</string>
<key>scope</key>
<string>source.php support.class.implements.php</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>italic</string>
<key>foreground</key>
<string>white</string>
</dict>
</dict>

Pour avoir en italic et en blanc par exemple.

A toi de chercher ce qui va correspondre à "désactiver la coloration pour les zones HTML et n'avoir que le code PHP qui soit coloré". Bon courage lol Smile