Colorateur Syntaxique en PHP
Bonjour,
Je viens de finir le développement d'un script php : un colorateur syntaxique. Il permet de colorer des codes sources à partir d'un fichier ou d'une chaine de caractères pour les langages C, C++, Java, Delphi, VB, Ada, SQL, OCaml, PHP. La coloration s'applique aux directives de compilation, aux commentaires, aux caractères et chaines de caractères, aux nombres et aux mots clés. Il est possible d'afficher le résultat (par défaut) ou de récupérer le résultat dans une chaine de caractères. Il est aussi possible d'afficher le numéro des lignes (désactivé par défaut).
J'ai mis en ligne via mon site web une présentation du projet, des statistiques, une démonstration, et les sources. L'adresse exacte est :
http://www.prog-info.org/projets/ColorateurSyntaxique.php
J'ai utilisé des classes pour développer ce script. Le code source est bien commenté.
J'espère que beaucoup d'entre vous vont le tester, me dire ce qu'ils en pensent, me dire comment je pourrais l'améliorer en gardant à l'esprit que je veux qu'il soit le plus rapide possible. Tout conseil est le bienvenu.
Par contre, je pense que ce genre de script est difficilement utilisable sur un site web où il y a de nombreux codes sources et de nombreux visiteurs. L'hébergeur risque de râler ;)
Peut être que le mieux est d'utiliser le script pour mettre dans une BDD le code source coloré ou même de l'enregistrer dans un fichier texte même si cela prend plus de place.
Source / Exemple :
// Exemple d'utilisation :
include("Repertoire/Colorer.php");
$source = new Colorer("Java", "Test.java");
include("TpsDebut.php");
echo "<pre>\n".$source->afficher()."</pre>";
echo "<p> ";
echo "Statistiques : ";
include("TpsFin.php");
echo "</p>\n";
Conclusion :
Le projet se trouve sur mon site web à l'adresse :
http://www.prog-info.org/
Rubrique projets, puis lien vers Colorateur Syntaxique.
http://www.prog-info.org/projets/ColorateurSyntaxique.php
http://www.prog-info.org/Scripts/ColorateurSyntaxique/LeTest.php
23 sept. 2004 à 01:03
Je m'étais moi aussi mis a faire un truc comme ca à l'époque, pour le C (ca date de il y a trois ans maintenant...). J'avais envie de m'y remettre, mais la je crois que je vais laisser tomber :) Ton résultat est bon !
Si tu veux, j'ai quelques suggestions:
- Ajout du numéro de chaque ligne à gauche (pratique)
- colorer le langage SQL
Et aussi un truc que j'avais voulu faire, c'est que chaque fonction standard (norme ANSI) soit un lien vers sa description (à quoi elle sert, les arguments qu'elle accepte etc.)
Bien sur, le numéro des lignes et les liens étaient facultatifs... Si ca intéresse des gens, je peux le poster ici...
Bonne continuation !
23 sept. 2004 à 05:32
Comme il dit, ca serait pas mal si d'apres une fonction PHP (existante) on puisse cliquer dessus pour tomber sur l'aide du site directement !
Ensuite, j'ai vu sur ton site que t'as un beau ToDo et que tu marques d'utiliser les Expressions Régulières plutot que str_replace(), OUI VITE FAIS LE :P utilises preg ! ca va aller beaucoup plus vite !
J'ai PLEINS de "Undefined variable" (ton error_reporting n'est pas à E_ALL, va lire http://www.phpcs.com/code.aspx?ID=24870 )
Et -> Woua :)
23 sept. 2004 à 19:18
24 sept. 2004 à 20:20
Je retiens le numéro des lignes en option.
En ce qui concerne le nom des fonctions, je le garde juste à l'esprit car c'est tres long à ecrire et meme si c'est en option, ca rallonge le temps de traitement grandement : à voir...
En ce qui concerne les undefined variables, ca concerne quelle page ? car je viens de mettre à on l'affichage de smsg et je ne vois rien !!!
PS : Quelle est la différence entre ereg et preg ?
24 sept. 2004 à 21:32
Pour ce qui est des erreurs bah juste dans la page qui fait afficher les tests (je crois que c'est LeTest.php) en cliquant sur un langage... N'oublie pas de mettre ton error_reporting = E_ALL dans ton php.ini !
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.