Delphipage - la reference en Delphi
Accueil - Astuces - Composants - Programmes - Tutoriaux - Livres - Liens
 Sources
- Astuces
- Composants
- Programmes
- Tutoriaux
 Rechercher
- Delphipage
- Ngscan
 Ressources
- Lexique Delphi
- Livres
- News
- Patchs Delphi
 Liens
- Borland France
- CodeGear
- Les meilleurs sites


Tutoriaux - Créer votre propre coloration syntaxique

Présentation 

Comme vous le savez, SynEdit permet d'afficher certains mots clés en couleurs suivant les langages. Il permet aussi de créer sa propre coloration syntaxique, c'est à dire de mettre en couleur les mots que vous aurez choisi. Pour cela, vous devez créer un nouveau langage.

Ce tutorial vous montrera les différents étapes à réaliser pour créer votre propre coloration syntaxique.

La première étape consiste à réaliser un fichier MSG puis de le transformer en un fichier PAS avec l'aide du programme SynGen livré avec SynEdit. Puis, il vous faudra créer un icône pour se nouveau langage. La dernière étape est de recompiler le paquet SynEdit.


Création du fichier MSG

Pour commencer, vous devez réaliser un fichier MSG qui contiendra toutes les spécifications de la syntaxe du nouveau langage. C'est dans ce fichier que vous devez insérer la liste des mots clés qui seront mis en couleur. Il est possible également de coloriser toute une ligne ou plusieurs lignes pour former ce que l'on appelle des "commentaires".

Ce tableau récapitule les différentes spécifications que l'on s'impose pour notre nouveau langage.


Mot clés
"delphi" et "delphipage"
Commentaires
{}
Chaine de caractères
" "

Voici le contenu de votre fichier MSG :

TSynTestSyn {first Identifier is considered to be the Class Name }
tk {second Identifier is considered to be the Identifier Prefix }
IdentStart '_', 'a'..'z', 'A'..'Z':: '_', '0'..'9', 'a'..'z', 'A'..'Z'::


TOKENTYPES
Identifier
Comment Style=[fsItalic]|Foreground=clNavy
Space
Key Style=[fsBold]|Foreground=clGreen
String Foreground=clRed
|><| KEYS { all between KEYS and |><| is considered to be a keyword }
delphi
delphipage

|><|


CHARS
'A'..'Z', 'a'..'z', '_':: Ident
BeginProc
fTokenID := IdentKind((fLine + Run));
inc(Run, fStringLen);
while Identifiers[fLine[Run]] do
Inc(Run);
EndProc


|><|
ENCLOSEDBY

Comment,BraceComment,{,},MultiLine

String,String,","
|><|


Le nom de votre langage doit être de la forme "TSyn+NomduLangage+Syn".
Dans notre cas, nous avons bien TSynTestSyn.

Pour spécifier les couleurs, vous avez trois possibilités :


Foreground=clRed
Foreground=$0000FF
Foreground=RGB(255,0,0)

Pour terminer avec cette partie, enregistrez le fichier MSG sous le nom "SynHighlighterTest". Vous devez obligatoirement enregistrer ce fichier en commencant par "SynHighlighter".


Générer le fichier PAS

Pour générer le fichier PAS, vous devez exécuter le programme "SynGen" se trouvant dans le répertoire de SynEdit.



Cliquez sur le bouton "Start!". Un message vous indique que le fichier PAS a bien été crée. Le fichier PAS est placé au même endroit que votre fichier MSG. Si le bouton "Start!" est grisé alors il manque un paramètre. Vérifiez bien le contenu de votre fichier MSG.

Mettez le fichier PAS "SynHighlighterTest.pas" dans le répertoire "Source" de SynEdit.


Créer un icône pour la palette de composants

Il faut maintenant créer correspondant à notre nouveau langage. Cet icône s'affichera dans l'onglet "SynEdit Highlighters" de la palette de composant de Delphi.

Pour cela, lancez l'éditeur d'images de Delphi se trouvant dans le menu "Outils" et ouvrez le fichier "SynEditReg.dcr". Ce fichier contient tous les icônes (c'est en faites des bitmaps) des différents langages déjà supportés par SynEdit.

Dans la liste, cliquez avec le bouton droit sur "Bitmaps" puis allez dans "Nouveau" et sur "Bitmap".




Les dimensions du bitmap sont de 23 x 23 en 16 couleurs. Renommez le bitmap en "TSYNTESTSYN". Ensuite, réalisez votre dessin (vous pouvez vous inspirer des autres icônes).

Pour terminer, enregistrez le fichier DCR.


Recompiler le paquet

Ouvrez le fichier "SynEditReg.pas" du répertoire "Source" de SynEdit.
Ajoutez "SynHighlighterTest" dans la clause "uses" et "TSynTestSyn" dans la procédure "Register".

uses SynHighlighterTest;

procedure Register;
begin
...
// SynEdit highlighters
RegisterComponents(SYNS_HighlightersPage, [....
TSynTestSyn
]);
end;

Enregistrez le fichier PAS.

Recompilez le paquet "Package\SynEdit_DX.pk3" correspondant à la version de Delphi que vous possedez. Delphi vous indique que la compilation a été effectué.

Vous devrez peut être débugger le fichier "SynHighlighterTest.pas". En effet, quelques erreurs peuvent se glisser dans le code dû au passage du fichier MSG au PAS. Mais en règle générale, vous n'aurez aucun problème.

Vous avez maintenant le composant TSynTestSyn dans l'onglet SynEdit Highligthers"" de la palette de composants de Delphi.


Exemple d'utilisation

Voici ce que vous obtenez.



Coloration syntaxique    [ 16-05-2004 ]
 Exemple pour créer sa propre coloration syntaxique avec SynEdit.
Télécharger :  [10 Ko] [Télécharger synedithighlighter.zip]

Auteur : Yoann
Site internet :
http://delphipage.free.fr/

Tous droits réservés - Contacts
Haut de la page