begin process at 2008 07 06 17:48:50
1 205 682 membres
247 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

EDITEUR SYNTAXIQUE [VB2005]


Information sur la source

Catégorie :Optimisation du code Source .NET ( DotNet ) Classé sous : coloration, syntaxique, vb, css, xml Niveau : Initié Date de création : 10/06/2006 Date de mise à jour : 08/08/2007 14:50:03 Vu / téléchargé: 8 381 / 1 003

Note :
9,56 / 10 - par 9 personnes
9,56 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (35)
Ajouter un commentaire et/ou une note

Description

Voici une classe héritée d'un RichTextBox qui permet de réaliser une coloration syntaxique basé sur la méthode utilisée dans Microsoft Snippet Editor
Elle utilise les interfaces TOM (ITextDocument, ITextRange...) pour fonctionner ainsi qu'un bon nombre des API Windows et travaille ligne par ligne.

J'y ai mis 4 colorateurs exemples (VB.Net, CSS, JavaScript, XML) et j'ai ajouté une fonction d'impression avec syntaxe (source MSDN). Le code est assez commenté pour expliquer le fonctionnement dans les détails.

Il y a possibilité de :
- Colorer seulement les lignes que l'on veut, les lignes visibles ou encore tout le texte (toutes ces fonctions sont automatisées)
- Surligner des rangées de code, la ligne en cours d'édition
- Remplacer toutes les occurences trouvées
- Surligner les mots remplacés
- Imprimer le code mis en forme en passant simplement le PrinterSettings obtenu par le PrintDialog
- Obtenir le PrintDocument avec la syntaxe colorée
- Obtenir la position du curseur (ligne et colonne).

Ainsi que toutes les autres fonctions du RichTextBox

Conclusion

J'ai joint une petite interface accompagné d'un PropertyGrid pour l'aperçu des fonctionnalités (voir image)
Je remercie romagny13 pour son colorateur XML/XSL.

Des fonctions comme Undo et Redo ont été ré-éecrites car elles n'étaient pas compatible avec l'interface ITextDocument. J'ai aussi ré-écrit la fonction LoadFile et SaveFile pour empêcher de passer en paramètre un RichTextBoxStreamType autre que PlainText.

Pour le faire fonctionner, il vous suffit juste de copier le répertoire CodeEditor dans votre projet, de le compiler une fois pour actualiser le FormDesigner et le contrôle apparaîtra dans la boîte à outil.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

18 décembre 2006 19:39:50 :
Petite erreur dans la description
08 août 2007 14:50:03 :
Ajout de plusieurs fonctannalités dont l'impression avec syntaxe, l'affichage des coordonnées, d'autres langages et de commentaires. Mise à jour de la description.
  • signaler à un administrateur
    Commentaire de romagny13 le 11/06/2006 00:46:53

    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+

  • signaler à un administrateur
    Commentaire de anthonygego le 11/06/2006 09:28:00

    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

  • signaler à un administrateur
    Commentaire de NHenry le 12/06/2006 08:34:13

    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 ?

  • signaler à un administrateur
    Commentaire de anthonygego le 12/06/2006 19:35:11

    Heu, après avoir fait un copier/coller, il faut appeler la fonction ColorAll() de la classe

  • signaler à un administrateur
    Commentaire de anthonygego le 12/06/2006 19:38:12

    Oups, je n'avait pas lu la fin, excuse moi, oui, il garde la coloration si on le copie vers word

  • signaler à un administrateur
    Commentaire de NHenry le 13/06/2006 07:46:16

    Merci, je pense que je vais rapidement l'adopter.

  • signaler à un administrateur
    Commentaire de romagny13 le 13/06/2006 13:37:45

    Merci, je pense que je vais rapidement le décortiquer lollllllll

  • signaler à un administrateur
    Commentaire de scottmat le 14/06/2006 11:45:59

    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 :)
    @+

  • signaler à un administrateur
    Commentaire de Red_Dragon le 15/06/2006 11:04:56

    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.

  • signaler à un administrateur
    Commentaire de anthonygego le 15/06/2006 12:33:19

    Faut dire, c'est un peu normal, je vois que tu es nouveau, as-tu déjà programmé beaucoup ?

  • signaler à un administrateur
    Commentaire de Red_Dragon le 15/06/2006 15:18:12

    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...

  • signaler à un administrateur
    Commentaire de scottmat le 15/06/2006 15:52:31

    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 ;)

  • signaler à un administrateur
    Commentaire de Red_Dragon le 15/06/2006 15:56:18

    Merci pour tes encouragements SCOTTMAT.

  • signaler à un administrateur
    Commentaire de romagny13 le 16/06/2006 00:46:43

    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
    ++

  • signaler à un administrateur
    Commentaire de Red_Dragon le 16/06/2006 09:13:00

    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.  

  • signaler à un administrateur
    Commentaire de romagny13 le 16/06/2006 11:02:13

    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
    ++

  • signaler à un administrateur
    Commentaire de Red_Dragon le 16/06/2006 11:32:40

    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.

  • signaler à un administrateur
    Commentaire de tigrane le 12/07/2006 08:38:43

    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? ;-)

  • signaler à un administrateur
    Commentaire de romagny13 le 12/07/2006 13:11:41

    ouai sauf que jai developper avec en entreprise tigrane donc ... je serai de toi

  • signaler à un administrateur
    Commentaire de guiguidu25 le 13/06/2007 12:01:45

    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 ?

  • signaler à un administrateur
    Commentaire de anthonygego le 04/07/2007 19:41:39

    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

  • signaler à un administrateur
    Commentaire de anthonygego le 12/07/2007 16:28:53

    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.

  • signaler à un administrateur
    Commentaire de panda2007 le 20/07/2007 14:47:08

    Ca me semble pas mal... J'ai pas trouvé quelque chose de similaire en C#. Je vais regarder les sources de SharpDevelop.

    Bravo 10

  • signaler à un administrateur
    Commentaire de anthonygego le 03/08/2007 14:21:14

    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 ^^

  • signaler à un administrateur
    Commentaire de LandTech le 20/01/2008 12:44:40

    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

  • signaler à un administrateur
    Commentaire de anthonygego le 20/01/2008 12:54:03

    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.

  • signaler à un administrateur
    Commentaire de aKheNathOn le 13/02/2008 00:50:21

    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 ?

  • signaler à un administrateur
    Commentaire de aKheNathOn le 13/02/2008 01:46:13

    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.

  • signaler à un administrateur
    Commentaire de LandTech le 23/02/2008 18:09:48

    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.

  • signaler à un administrateur
    Commentaire de veler le 23/03/2008 10:58:00

    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 ;)

  • signaler à un administrateur
    Commentaire de insosama le 09/05/2008 02:10:54 10/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 !

  • signaler à un administrateur
    Commentaire de anthonygego le 09/05/2008 19:06:56

    Oui tu peux faire des modifs, c'est bien pour ça qu'il est sur le site.

  • signaler à un administrateur
    Commentaire de insosama le 12/05/2008 23:47:03

    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 !

  • signaler à un administrateur
    Commentaire de kciope le 15/05/2008 13:06:33 10/10

    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!

  • signaler à un administrateur
    Commentaire de anthonygego le 15/05/2008 17:46:38

    Bizarre, tu as bien remplacé les deux commandes ? Car il y a une condition...

Ajouter un commentaire

Discussions en rapport avec ce code source

Pub



Appels d'offres

WEB DESIGN
Budget : 1 000€
Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS