Page 1 sur 1

Scintilla et la coloration syntaxique...

Publié : mer. 30/mars/2016 15:02
par JohnJohnsonSHERMAN
Salut a tous !

Je cherche en ce moment a développer un générateur de code (ou tout au moins au début juste un éditeur avec coloration syntaxique), fait en PB, mais pour d' autres langages (NXC, Basic CASIO, C pour SDK CASIO), qui ne bénéficient pas d'éditeurs complets avec coloration et autocomplétion.

Le probléme c'est de colorer avec scintilla, n'ayant jamais utilisé ce truc. :(

Je me demande surtout comment on définit la liste des mots a colorer (genre qu'est ce qui est une constante, qu'est ce qui est une fonction, etc...) propre a chaque langage? Où ca se trouve? Doit-on le faire manuellement? :?:

J'ai déja trouvé un petit code de falsam : http://www.purebasic.fr/french/viewtopi ... syntaxique, mais qui ne colore rien... tout est... noir [Ok]

Ca vient peut peut être de

Code : Tout sélectionner

ScintillaSendMessage(#Editor, #SCI_SETLEXER, #SCLEX_HTML)
A ce que j'en ait compris, ce truc permet a l'utilisateur de définir dans quel langage Scintilla doit rechercher les mots a colorer, mais dans le cas d'un langage "maison", que doit on entrer a la place de #SC_LEX.... ? Où définir ses mots clés, ses constantes, etc??? (imaginons par exemple que j'aie un langage trés simple avec une instruction StartSherman(), et une constante #Canon_de_105, comment dois-je faire pour obtenir la coloration de la fonction en... mauve foncé 8O (pourquoi pas?) et de la constante en vert fluo (vraiement de mauvais gout :? )?? )

Edit : Ca se colore bien dans l'exemple de falsam, maintenant.


Merci d'avance !

Re: Scintilla et la coloration syntaxique...

Publié : jeu. 31/mars/2016 18:36
par JohnJohnsonSHERMAN
J'ai un peu avancé dans mes recherches, et je ne sait toujours pas paramétrer scintilla pour colorer un code dans un langage qui n'y est pas répertorié... Comment créer son lexer avec Scintilla ? Est-ce Scintilla qui colore le code ou un autre composant qui reconnait les mots clés, les fonctions,etc...? Comment faire (cf mon exemple précedent post) ?

S'il vous plait, répondez moi vite car ces problémes me bloquent entiérement au niveau de mon projet...ca fait 2 jours que je passe mon temps a ne rien faire de constructif, et ca n'avance pas... :!: SOS :!: :(

Re: Scintilla et la coloration syntaxique...

Publié : jeu. 31/mars/2016 19:21
par Ar-S
je ne connais pas scintilla, mais en tapant scintilla dans les recherches je suis tombé sur ce lien qui pourra peut être t'aider.
http://purebasic.developpez.com/sources/?page=Scintilla

Re: Scintilla et la coloration syntaxique...

Publié : jeu. 31/mars/2016 20:21
par JohnJohnsonSHERMAN
Celui là je l'ait déja vu... est ca ne me dit pas comment créer un lexer pour scintilla ou un truc qui reconnaisse la syntaxe des mots (genre si tel mot est une variable, tel autre une instruction, etc...)

Merci quand même Ar-S!

Edit : Le deuxiéme code est intéressant, j'avais pas pu le compiler tout a l'heure car je n'avais pas SciLexer.dll, mais maintenant c'est ok. je vous tient au courant de mes essais et recherches...

Re: Scintilla et la coloration syntaxique...

Publié : ven. 01/avr./2016 8:13
par Fred
La version integrée à PureBasic ne contient aucun lexers, c'est pour ca que ca ne fonctionne pas. Tu peux recuperer la DLL officielle et la remplacer, ca devrait marcher.

Re: Scintilla et la coloration syntaxique...

Publié : ven. 01/avr./2016 17:13
par JohnJohnsonSHERMAN
Si tu parles de la SciLexer.dll, je l'ai, mais je ne sait pas comment créer mon lexer, ou même si ce n'est pas plus simple d'utiliser une callback avec le gadget Scintilla pour colorer le code. Je rappelle que je cherche juste a colorer du code, mais qui n'est pas du PB ni aucun autre répertorié dans les lexers de Scintilla (c'est du Basic Casio, je pense que ce n'est pas trés répandu).
Pour l'instant, je vais me pencher sur la méthode de la callback.

Allez, le Sherman, au boulot... :)

Re: Scintilla et la coloration syntaxique...

Publié : ven. 01/avr./2016 17:17
par falsam

Re: Scintilla et la coloration syntaxique...

Publié : sam. 02/avr./2016 10:34
par JohnJohnsonSHERMAN
Merci falsam !!!