2009-10-08 3 views
4

Si mon approche initiale est erronée, voici ce que j'essaie d'accomplir. Je veux être capable de reconnaître des extraits de texte dans mon éditeur de code (j'utilise C#, mais cela ne devrait pas avoir d'importance) et de changer la façon dont ils sont formatés. Peut-être utiliser des couleurs ou des polices différentes, etc. J'ai commencé en pensant que ce serait aussi simple que d'insérer une expression régulière dans un fichier de configuration quelque part et de définir des valeurs par défaut ... pas tellement.Est-ce que quelqu'un a un exemple de création d'un marqueur de texte personnalisé dans Visual Studio?

J'ai jusqu'à présent identifié deux façons possibles de le faire, la première consiste à créer un nouveau service de langue pour Visual Studio. Je ne pense pas que cela ait du sens parce que je ne fais que renforcer l'analyse par défaut de C# lex &. Le second est par How to: Create Custom Text Markers. Cela semble mieux, parce que si je le lis correctement cela me permettra de créer mes propres règles pour reconnaître des sections de texte (regex, etc) dans l'EDI et ajouter des marqueurs de texte basés sur cela. Celles-ci seront ensuite exposées dans la zone Options -> Environnement -> Polices et Couleurs dans Visual Studio Options (similaire à ReSharper Overrides, ReSharper DeadCode, etc.). En supposant que la route Custom Text Markers est la voie à suivre, et je suis ouvert à d'autres idées, j'ai besoin d'implémenter l'interface IVsPackageDefinedTextMarkerType et d'implémenter la méthode GetTextMarkerType. Cela semble assez simple ...

J'ai alors besoin de "proposer [mon] type de marqueur comme un service", c'est là que je me perds un peu. Il existe un exemple de création d'un service personnalisé dans Visual Studio SDK, mais je n'arrive pas à comprendre comment lier les deux ensemble. J'ai encore beaucoup de recherches à faire sur ce sujet, alors je peux répondre à ma propre question, mais ce serait bien si quelqu'un pouvait me faire gagner du temps!

Répondre

Questions connexes