Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C#] Questions : Editeur de code

TextBox, coloration syntaxique, n° de lignes, etc.

    28 juillet 2011 à 10:57:11

    Salut à tous,

    Une idée m'est passé par la tête et je n'ai pas trouvé de réponses.
    J'aimerais savoir les procédés pour la création d'un éditeur de code avec coloration syntaxique, n° des lignes, et tous les autres outils visuels s'appliquant à un éditeur de code (Notepad++ par exemple).

    J'ai pensé d'abord à un composant personnel, puis ça doit être compliqué à en développer un de cette envergure.
    Du coup j'ai pensé à des bibliothèques déjà existantes, je n'ai pas trouvé quelque chose qui tienne la route.
    J'ai même pensé à un RichTextBox ...

    Je sais pas bien que pour la coloration syntaxique ça serait à coup de l'évènement "TextModified" où on reparse tout le contenu.
    Mais de ce qui est le reste, je n'ai absolument aucune idée de la façon de faire, si vous pouvez m'aiguiller ;)
    • Partager sur Facebook
    • Partager sur Twitter
      28 juillet 2011 à 11:04:22

      Tu peux peut-être aller faire un tour du côté de Scintilla.NET, ça t'intéressera peut-être.
      http://scintillanet.codeplex.com/
      • Partager sur Facebook
      • Partager sur Twitter
        28 juillet 2011 à 12:10:49

        Je l'ai essayé il quelques heures avant mon post, et j'arrive pas à inclure les composants...
        Il y a toujours une erreur dans le Dragn'n'Drop des contrôles.

        Edit : Erreur obtenue
        Image utilisateur
        • Partager sur Facebook
        • Partager sur Twitter
          29 juillet 2011 à 17:03:22

          Une idée ?
          J'ai mis un screen de l'erreur obtenue :)
          • Partager sur Facebook
          • Partager sur Twitter
            29 juillet 2011 à 23:16:05

            As-tu bien ajouté la référence à Scintilla dans ton projet ? :euh:
            • Partager sur Facebook
            • Partager sur Twitter
              30 juillet 2011 à 18:13:08

              Tu peux créer une coloration syntaxique avec les classes de .NET , suis ce lien :)
              • Partager sur Facebook
              • Partager sur Twitter
              "Il est impossible pour un homme d'apprendre ce qu'il croit déjà connaître"
                31 juillet 2011 à 21:55:49

                Problème résolu ?
                • Partager sur Facebook
                • Partager sur Twitter
                "Il est impossible pour un homme d'apprendre ce qu'il croit déjà connaître"
                  6 août 2011 à 2:00:54

                  Citation : Orwell

                  As-tu bien ajouté la référence à Scintilla dans ton projet ? :euh:


                  J'ai dépassé ce stade :p
                  J'ai bien vérifié les références ;)

                  Citation : Chiheb2010

                  Problème résolu ?


                  J'étais parti en vacances ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    7 août 2011 à 4:41:45

                    Je me permet un up mais j'ai des nouvelles :

                    J'ai lu la documentation minutieusement, j'ai donc appris qu'il fallait intégrer quelques variables d'environnement etc.
                    Choses faites.

                    Ceci dit je dispose désormais d'un autre problème. J'arrive sans problème à dessiner mon composant, mais il y a une erreur indiquant que l'assembly est introuvable. Évidemment je vérifie que la DLL est bien présente en référence et en copie locale : tout est niquel.
                    Je procède à un test : j'efface la référence ScintillaNET et je remet en cherchant directement dans les fichiers binaires. Toutes les erreurs disparaissent. Donc je compile et c'est là que ces erreurs réapparaissent et je ne peux plus accéder aux classes de ScintillaNET.
                    Je vérifie que je dispose toujours des références et c'est toujours le cas. Et je procède à nouveau à ce test et ça me fait à chaque fois la même chose.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      7 août 2011 à 16:40:53

                      Quand tu dis

                      Citation : Raphy

                      j'efface la référence ScintillaNET et je remet en cherchant directement dans les fichiers binaires.


                      Tu vas la chercher où exactement ? Dans le dossier /bin ? :o
                      • Partager sur Facebook
                      • Partager sur Twitter
                        7 août 2011 à 17:33:39

                        J'ai téléchargé l'archive sur ScintillaNET et j'ai référé la DLL ScintillaNET.dll dans cette archive ^^
                        Et je réfère toujours la même, mais celle ci "s'enlève" à chaque compilation...
                        • Partager sur Facebook
                        • Partager sur Twitter
                          7 août 2011 à 17:38:29

                          Tu ne peux pas créer de référence vers une dll qui se trouve dans le dossier /bin, sinon elle est effectivement effacée à chaque compilation et ça provoque des erreurs. Fais-toi un dossier "libraries" (par exemple) dans ta solution, places-y toutes les dll third-party que tu utilises, et ajoute les références à partir de cet endroit :)
                          • Partager sur Facebook
                          • Partager sur Twitter
                            7 août 2011 à 17:41:49

                            Ah oui ça je sais bien :)
                            J'ai placé les DLL téléchargées dans le chemin C:\ScintillaNET.
                            Et c'est dans ce dossier ou je prends la DLL en référence et évidemment j'indique de faire une copie locale.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              10 août 2011 à 13:39:06

                              Peux-tu éditer ton fichier csproj, et vérifier que le HintPath des références vers ces DLL désignent bien ton dossier C:\ScintillaNET, et pas un dossier dans /bin ? :)
                              • Partager sur Facebook
                              • Partager sur Twitter
                                12 août 2011 à 18:56:15

                                J'avais ça :
                                <Reference Include="ScintillaNet">
                                      <HintPath>..\..\..\..\..\..\..\ScintillaNet\ScintillaNet.dll</HintPath>
                                    </Reference>
                                


                                J'ai remplacé par ça :
                                <Reference Include="ScintillaNet">
                                      <HintPath>C:\ScintillaNet\ScintillaNet.dll</HintPath>
                                    </Reference>
                                


                                Et le problème n'est toujours pas résolu :(
                                Exactement la même erreur...

                                EDIT : Encore plus étrange, j'ai téléchargé une versions antérieure de ScintillaNet avec un installateur automatique et j'obtient la même erreur (en faisant attention à changer la référence et les composants).
                                Même que le fichier csproj a été modifié :

                                <Reference Include="ScintillaNet, Version=2.0.3138.25704, Culture=neutral, PublicKeyToken=948d6c9751444115, processorArchitecture=MSIL" />
                                



                                Je suis vraiment perdu là oO
                                • Partager sur Facebook
                                • Partager sur Twitter

                                [C#] Questions : Editeur de code

                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                • Editeur
                                • Markdown