EDITEUR SYNTAXIQUE [VB2005]

romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 - 11 juin 2006 à 00:46
LandTech Messages postés 73 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 28 février 2011 - 29 juil. 2008 à 16:56
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/38052-editeur-syntaxique-vb2005

LandTech Messages postés 73 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 28 février 2011
29 juil. 2008 à 16:56
Salut,

Pour accélérer tu pourrais mettre la coloration sur des threads.

Est-ce que une personne pourrais me dire comment on sait si l'utilisateur à cliqué sur la marge (property Margin).

Merci d'avance.
anthonygego Messages postés 48 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 10 juillet 2008 1
16 juil. 2008 à 13:38
Merci pr l'info. De mon coté, j'ai trouvé un document intéressant : http://home.att.net/~robertdunn/Papers/FasterSyntaxHighlighting.doc

J'ai déjà essayé la première optimisation car on peut la mettre avec le code actuel, la coloration est déjà plus rapide, c'est surtout visible lorsqu'on colore les lignes visibles lors du scroll.

Je vais donc voir ce que ça donne mais le tableau dans le doc indique d'excellents résultats.
cs_veler Messages postés 723 Date d'inscription dimanche 26 novembre 2006 Statut Membre Dernière intervention 23 janvier 2013 2
15 juil. 2008 à 17:08
ok, merci pour l'info^^
LandTech Messages postés 73 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 28 février 2011
15 juil. 2008 à 15:28
Salut

c'est vrai que C# est plus rapide que VB.Net si Option Strict est désactiver, mais s'il est activé c'est VB.Net qui est plus rapide : Comparaison sur le site de Microsoft.

Le lien je ne me souviens plus.

Voilà, j'espère ne pas mettre trompé : ça arrive.
anthonygego Messages postés 48 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 10 juillet 2008 1
14 juil. 2008 à 10:15
Oui je connais également, et apparement la source Puzzle SyntaxBox est basée dessus (ou l'inverse) car ce sont les mêmes noms et fonctions. Je trouve par contre la source assez complexe... c'est carrément ré-écrire un contrôle qu'ils font...

J'ai également trouvé un autre projet C#, plus léger, qui passe par du RTF, et la coloration n'est pas trop lente...

Perso, je n'ai encore jamais été confronté à des différences de performances entre C# et VB.Net... pourtant il m'arrive de convertir des projets.
cs_veler Messages postés 723 Date d'inscription dimanche 26 novembre 2006 Statut Membre Dernière intervention 23 janvier 2013 2
13 juil. 2008 à 17:23
Salut, je connais un autre éditeur de texte avec coloration syntaxe ET numérotation des lignes ET regrouppement de ligne, en gros, c'est exactement le même éditeur de code que VS, et OpenSource

ici : http://www.codeplex.com/dotnetfireball

Il fonctionne très bien et est très rapide, il est fait en C#, j'étudi depuis quelque temps ses codes et n'ai toujours pas trouvé comment ça fonctionne exactement, mais ça fonctionne. Pour les paramètre de la colorisation, c'est en fait grâce à la lecture d'un fichier xml, grâce à ça, on peux faire la colorisation pour n'importe quoi, dans l'exemple, FireEdit, il y a C++, C#, VB.Net, CSS, HTML, Python, PHP et j'en oublit une dizaine.

Bon, c'est beaucoups plus puissant que cette source en VB.Net, mais faut dire aussi qu'elle beaucoup plus grande et plus complexe, et, je ne sais pas si c'est vrai mais il parait que le C# s'éxécute plus vite que le VB.Net.

Voila, @+
anthonygego Messages postés 48 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 10 juillet 2008 1
13 juil. 2008 à 16:01
Faux espoir, il faut absolument passer par une sélection. Et ça ralenti au bout de fichiers de 100ko... Mais je continue de chercher une solution qui fonctionne très bien...
anthonygego Messages postés 48 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 10 juillet 2008 1
12 juil. 2008 à 22:15
Je vais travailler prochainement sur la source car j'en aurai besoin dans un projet.

J'ai trouvé récemment une source C++ rapide et assez simple. La fonction utilisée pour colorer était SetSelectionCharFormat. J'ai donc cherché avec un réflecteur dans RichTextBox après une fonction de ce style et je suis tombé sur une privée du nom de SetCharFormat utilisant l'API SendMessage. Cette fonction doit surement servir au traitement RTF... Je vais donc plancher là dessus dès que possible.

Ce changement permettrait sans doute d'éviter le passage par des fonctions plus complexe que les APIs, lacher l'interface ITextDocument ainsi que le ColorToken et donc récupérer des performances.

Vu qu'il s'agit +- de la même fonction pour l'impression qui est très rapide (du moins, beaucoup plus que la coloration), j'espère avoir les même résultats. ^^
anthonygego Messages postés 48 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 10 juillet 2008 1
15 mai 2008 à 17:46
Bizarre, tu as bien remplacé les deux commandes ? Car il y a une condition...
kciope Messages postés 20 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 7 août 2009
15 mai 2008 à 13:06
Excellent code. Je souhaite seulement savoir comment fais t'on pour changer la couleur des syntaxes, j'ai bien modifier blue par orange sur VBCodeColoriser.vb mais ca reste en bleu.
Est ce que quelqu'un peut m'aider?

Merci et bravo!
insosama Messages postés 5 Date d'inscription mardi 7 août 2007 Statut Membre Dernière intervention 8 mai 2008
12 mai 2008 à 23:47
oky merci ! je posterais le resultat quand ca sera fini, avec le lien vers la sources. mes ajout n'ayant d'interet que leur "but" et non la facon dont c'est fait. celle la, en grande partie, te reviens. encore bravo, et a bientot pour la suite !
anthonygego Messages postés 48 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 10 juillet 2008 1
9 mai 2008 à 19:06
Oui tu peux faire des modifs, c'est bien pour ça qu'il est sur le site.
insosama Messages postés 5 Date d'inscription mardi 7 août 2007 Statut Membre Dernière intervention 8 mai 2008
9 mai 2008 à 02:10
code magnifique ! je voulais cependant demander a son auteur un accord (ou une participation)

voila, je veu partir de ton projet et ajouter juste 2 3 fonctions qui me parraissent utile :

1) (pour le fun) un systeme d'analyse statistique du code : nombre de ligne, nb de ligne de code, nb de ligne de comment. nombre de cara, en tout, de code, de comment. reperer les todo et les assigner, etc ...
2) plus serieusement : pouvoir netoyer tout les coment, tout les saut de ligne. toutefois l'ajout du comentaire 'W a une ligne permet de supprimer le commentaire mais garder la ligne, et l'ajout de '# permet de garder ce commentaire completement.
3) MISE A JOUR : on charge deux code : un tres long mais possédant des fonctions ancienne et certaines qui manque. l'autre plus récent mais ciblant que certaines fonction, avec création de nouvelle (cas en fait de quand on isole une sous fonction pour travailler dessus plus facilement). mettre a jour remplace toute les veille fonction par les nouvelles et ajoute toutes les nouvelles structure (fonction et declaration de variable)
4) eventuellement une fonction de "replace" paramétrique puissante

voila. je peu me debrouiller sans trop d'aide, bien sure, mais je veu ton accord (sachant que peut etre je posterais ma source finale) ^_^

bravo en tout cas !
cs_veler Messages postés 723 Date d'inscription dimanche 26 novembre 2006 Statut Membre Dernière intervention 23 janvier 2013 2
23 mars 2008 à 10:58
Bonjour,

Oui, c'est vrai que c'est vachement plus rapide, même si ça saute un peu quand on bouge les scroll, mais ce n'est vraiment pas gênant par rapport à ce qu'il y avait avant.

Bon, euh, moi, j'ai une petite question à propos des Keywords.
Quand je met un keyword tel que "<html>", ba, ça ne fonctionne pas. Je pense que c'est les <> qui le gêne. J'ai vue dans la colorisation du XML qu'ont utilise des commande spéciale mais je ne trouve pas laquel permet de faire ça.

Vous pouvez m'expliquer svp

Merci :)

ps: au fait, 10/10!! vraiment super ce code ;)
LandTech Messages postés 73 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 28 février 2011
23 févr. 2008 à 18:09
Bonjour,

Voilà, j'ai trouvé :

D'une part, il faut remplacer tout les ColorAll par des ColorVisibleLines.

Puis, il faut ajouter :

Private Sub CodeEditor_HScroll(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.HScroll
If Me.Created Then Me.ColorVisibleLines()
End Sub

Private Sub CodeEditor_VScroll(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.VScroll
If Me.Created Then Me.ColorVisibleLines()
End Sub

et la ça sera ultra rapide.
Utilisateur anonyme
13 févr. 2008 à 01:46
Une première remarque concernant l'optimisation, quand tu colles 1000 lignes de code dans ton controle cela prend un certain temps, il faudrait que tu inhibe l'appel des evenements du style : OnTextChanged en créant une valeur d'état :

Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
If Me._Colorizing Then Exit Sub

Cela va diviser le temps de réponse du soft. De plus, il ne va interpréter que ligne par ligne le fichier, alors qu'il faudrait une interprétation par codons, c'est pour les commentaires en C# du style :

/**
* COMMENTAIRE
*/

Les RegEx doivent surement être l'autre partie à optimiser pour avoir des résultats de chargement corrects.
Utilisateur anonyme
13 févr. 2008 à 00:50
Le code génial, rien à redire - mais j'ai quelques questions concernant la fesabilité des choses (ptét que vous pourrez m'éclaircir) en partant sur la base de ce code :

- Serais-t'il possible de créer des régions avec la possibilité de les "collapser" - j'imagine qu'il faudrait implémenter un conteneur contenant les + et - mais je me demande au niveau du contenu si un tel rendu est possible

- Serais-t'il possible d'implementer les langages sous forme de plugin externe - si vous avez une idée d'uniformisation ce serais parfait mais je pensais à des biblithéques de classes.

- Serais-t'il possible de créer des objets à l'interieur du textarea : genre lien cliquables ou bien icones avec un tooltip ?
anthonygego Messages postés 48 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 10 juillet 2008 1
20 janv. 2008 à 12:54
Je pensais à ça pour la coloration mais ça faisait quelques bugs lors du défilement avec la roulette de la souris. Je ferai bientôt une nouvelle mise à jour d'ici début Février où j'essayerai de résoudre ces problèmes.
LandTech Messages postés 73 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 28 février 2011
20 janv. 2008 à 12:44
Bonjour, ta source est pas mal mais elle plante un peu sur des texte long, donc ce qu'il faudrait c'est colorier toujours les lignes visibles pour l'accélérer, et si tu veux un intellisense, va voir ma source elle peut t'aider.

Si tu trouve comment déplacer l'intellisense dis le moi.

Merci
anthonygego Messages postés 48 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 10 juillet 2008 1
3 août 2007 à 14:21
Les sources de SharpDevelop sont plus compliquées, enfin, l'éditeur est beaucoup plus complet.
Je vais me mettre à commenter le code et à ajouter des fonctions comme l'obtention des lignes et colonnes courantes par exemple, mais je reste avec la coloration VB.Net. Je vais aussi essayer d'ajouter un intelli-sense mais je promets rien ^^
cs_panda2007 Messages postés 1 Date d'inscription jeudi 1 mars 2007 Statut Membre Dernière intervention 20 juillet 2007
20 juil. 2007 à 14:47
Ca me semble pas mal... J'ai pas trouvé quelque chose de similaire en C#. Je vais regarder les sources de SharpDevelop.

Bravo 10
anthonygego Messages postés 48 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 10 juillet 2008 1
12 juil. 2007 à 16:28
Je travaille dessus pour un appli, il est possible que je mette à jour le code d'ici août, en moins de fichiers, avec des commentaires et éventuellement plus de fonctions... avec comme colorisation le langage CSS.
anthonygego Messages postés 48 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 10 juillet 2008 1
4 juil. 2007 à 19:41
Oui, passe voir le fichier VBCodeColoriser.vb qui met en coloration le code VB.Net, il contient les intructions et le code qui permet de colorer les commentaires
guiguidu25 Messages postés 280 Date d'inscription samedi 6 mai 2006 Statut Membre Dernière intervention 9 février 2010 1
13 juin 2007 à 12:01
bon je met 10/10 car le résultat est excellent mais je ne comprend pas : est-ce possible de choisir les instructions que l'on souhaite colorier ? Si oui, comment SVP ?
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
12 juil. 2006 à 13:11
ouai sauf que jai developper avec en entreprise tigrane donc ... je serai de toi
cs_tigrane Messages postés 1 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 12 juillet 2006
12 juil. 2006 à 08:38
romagny13, c'est bien d'être fan de Microsoft mais il ne faudrait pas parler des produits que tu ne connais pas.
Windev permet de programmer indifféremment en français et en anglais.
Quant à tes remarques sur la fiabilité etc. Idem, tu ne connais visiblement pas le produit, n'en parle pas, restes en aux remarques sur VS.

VS2005 a des atouts, mais sur bien des points, Windev lui est supérieur, et ce depuis longtemps. Mais bon, il est tellement plus politiquement correct de préférer les outils Microsoft hein? ;-)
cs_Red_Dragon Messages postés 41 Date d'inscription vendredi 9 juin 2006 Statut Membre Dernière intervention 27 septembre 2006
16 juin 2006 à 11:32
Merci pour tes explications. Mon idée était bien de privilègier VB2005 à Windev, en fait le seul point qui avait attirer mon attention vers Windev était (comme tu l'as dit) d'avoir le système Hyperfile intégré car dès qu'on souhaite gérer de la data se pose le probléme de la solution de stockage (sans cout supplémentaire !!). Mais en fait il existe maintenant des solutions pour les petits projets : XML, MySQL, ou encore mieux à mon sens MSDE 2000 et 2005.
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
16 juin 2006 à 11:02
deja dans Windev tu programmes en francais et c'est deja assez particulier,
c'est sensé etre beaucoup plus facile de programmer avec windev, mais c'est un leurre parce que le produit est pas du tout fiable,personnellement jamais j'oserai vendre un truc developpe avec windev
Windev a qd mm des qualites je pense,son systeme de fichier hyperfile intégré et le fait de programmer en francais,un lot d'exemples complets
mais je crois qu'il vaut mieux qd mm apprendre avec VB mm si au depart on peine un peu, au moins on a un outil fiable et avec VB2005 en plus ya plein assistants maintenant, al'heure actuelle, en plus tu pourras te lancer plus facielemnt dans ASPNET en connaissant deja VB, d'ailleurs C# ressemble beaucoup a VB je vois 3 points importants dans la programmation qui sont liés :
- l'interface utilisateur
- l'utilisation de la programmation objet qui permet de communiquer entre l'interface et les données
- les données(base de donnée,XML,fichiers,...)

et bien connaitre le framework
(en fait on se rapproche de la méthode UML)

jai pas non plus 10 ans d'experience mais je progresse rapidement
++
cs_Red_Dragon Messages postés 41 Date d'inscription vendredi 9 juin 2006 Statut Membre Dernière intervention 27 septembre 2006
16 juin 2006 à 09:13
Merci ROMAGNY13, j'ai commencé à consulter le cours sur developpez.com, c'est bien en effet. Il y a des notions que je connais déja mais pour d'autres c'est une aide bienvenue.

Sur ton site tu fais référence à Windev, juste une question tu en penses quoi ? et en particulier par rapport à VB2005 ? De toute façon mon choix est fait et n'est pas reversible, c'est juste pour avoir l'avis de quelqu'un qui connait les deux.
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
16 juin 2006 à 00:46
waa Red_Dragon ya un bon cours sur le site developpez.com
http://plasserre.developpez.com/vsommair.htm

sinon tu pe passer sur mon site(je me fais de la pub lolll)
http://membres.lycos.fr/romagny13/
ya pas mal de liens pour VB.NET ,VB 2005,etc. (outils de développements,cours en lignes,forums pour etre aider,sites de la communauté,...)

le but de mon site est justement de repertorier les meilleures ressources disponibles sur le web pour les langages les plus courants
++
cs_Red_Dragon Messages postés 41 Date d'inscription vendredi 9 juin 2006 Statut Membre Dernière intervention 27 septembre 2006
15 juin 2006 à 15:56
Merci pour tes encouragements SCOTTMAT.
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
15 juin 2006 à 15:52
Moi j'ai appri avec des bouquins que tu trouve un peu partout et plus particuliérement les bouquins de Microsoft Press qui sont bien expliquer mais parfois un petit peu dur à comprendre.
Puis, tu va voir petit à petit tu va progresser
Bon courage ;)
cs_Red_Dragon Messages postés 41 Date d'inscription vendredi 9 juin 2006 Statut Membre Dernière intervention 27 septembre 2006
15 juin 2006 à 15:18
Non pas vraiment. Jusqu'à présent je faisais quelques bricoles en VBA sous Access (un peu Word et Excel également). Je souhaite passer à quelque chose de plus interessant, alors j'ai décidé de regarder VB2005 de plus près. Il me faudra certainement patience et persévérance, mais je suis motivé. Pour le moment je regarde tutoriaux et sources niveau débutant là j'ai fait une exception poussé par la curiosité du résultat ;) ... Peut etre as tu des conseils sur la meilleure façon de commencer ?? J'ai trouvé ce site en cherchant des infos sur le net, je tiens à féliciter tous ceux qui y participent (à tous niveaux, webmasteurs, administrateurs, membres, etc...) car pour quelqu'un comme moi on y trouve une aide très précieuse. J'espère que les plus chevronnés seront indulgents :) pour mes questions et (qui sait) futures sources...
anthonygego Messages postés 48 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 10 juillet 2008 1
15 juin 2006 à 12:33
Faut dire, c'est un peu normal, je vois que tu es nouveau, as-tu déjà programmé beaucoup ?
cs_Red_Dragon Messages postés 41 Date d'inscription vendredi 9 juin 2006 Statut Membre Dernière intervention 27 septembre 2006
15 juin 2006 à 11:04
Cette source dépasse (de loin) mon niveau actuel, mais je trouve résultat très fort. En attendant d'y comprendre quelque chose (si si un jour...), respect : 10/10.
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
14 juin 2006 à 11:45
Super comme source ! Moi qui essayer de mettre au point un moteur de coloration. Sa va me faire gagner un temps fou.
un petit 10 fera l'affaire :)
@+
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
13 juin 2006 à 13:37
Merci, je pense que je vais rapidement le décortiquer lollllllll
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
13 juin 2006 à 07:46
Merci, je pense que je vais rapidement l'adopter.
anthonygego Messages postés 48 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 10 juillet 2008 1
12 juin 2006 à 19:38
Oups, je n'avait pas lu la fin, excuse moi, oui, il garde la coloration si on le copie vers word
anthonygego Messages postés 48 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 10 juillet 2008 1
12 juin 2006 à 19:35
Heu, après avoir fait un copier/coller, il faut appeler la fonction ColorAll() de la classe
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
12 juin 2006 à 08:34
Cela faisait longtemps que je recherchais un code comme celui-ci, question, est-ce qu'il conserve la coloration lors d'un Copier coller vers word ou autre ?
anthonygego Messages postés 48 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 10 juillet 2008 1
11 juin 2006 à 09:28
Oui, il s'agit bien de la méthode de Snippet Editor de Microsoft
Si je l'ai postée ici, c'est car beaucoup de personnes cherches à réaliser ce type de code, la coloration dès la frappe...

Enfin, bon usage
Pour l'intellisense... ça risque d'être difficile, surtout pour moi lol
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
11 juin 2006 à 00:46
Oui super reste plus qu'à implémenter l'intellisense
nan je plaisante quoique si t'as envie faut pas te géner
loll
en tout cas ta source devrait mettre utile pour optimiser mon moteur de coloration syntaxique pour mon éditeur perso (qui détronera d'ici quelques années Visual studio ) lolllllll

est ce que c'est la méthode utilisée par Microsoft, celle que tu montres ?
(jai un peu étudié code snippet editor)

bon enfin merci pour ta source
super
A+
Rejoignez-nous