Comment : Créez des marqueurs de texte personnalisés
Si vous souhaitez créer un marqueur de texte personnalisé pour accentuer ou organiser le code, vous devez prendre les étapes suivantes :
Enregistrez le nouveau marqueur de texte, de sorte que d'autres outils puissent y accéder
fournissez une implémentation et une configuration par défaut du marqueur de texte
Créez un service qui peut être utilisé par d'autres processus pour utiliser du marqueur de texte
Pour savoir comment appliquer un marqueur de texte à une zone de code, consultez Comment : marqueurs de texte d'utilisation.
pour enregistrer une marque personnalisée
créez une entrée du Registre comme suit :
HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\VisualStudio \ <Version> \Text Editor\External Markers \ <MarkerGUID>
<MarkerGUID> est GUID utilisé pour identifier la marque ajoutée
<Version> est la version de Visual Studio, par exemple 8,0
<PackageGUID> est un GUID du VSPackage qui implémente l'objet Automation.
Notes
Le chemin d'accès racine HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\VisualStudio \ <Version> peut être substitué par une autre racine lorsque le shell Visual Studio est initialisé, car plus d'informations, consultez Commutateurs de la ligne de commande (Kit de développement logiciel Visual Studio).
créez quatre valeurs sous HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\VisualStudio \ <Version> \Text Editor\External Markers \ <MarkerGUID>
(Valeur par défaut)
Service
DisplayName
Package
Default est une entrée facultative du type REG_SZ. Une fois définie, la valeur de l'entrée est une chaîne contenant une certaine informations d'identification utile, par exemple « marqueur de texte personnalisé ».
Service est une entrée du type REG_SZ contenant la chaîne GUID du service qui fournit le marqueur de texte personnalisé en proposant IVsTextMarkerTypeProvider. le format est {}.
DisplayName est une entrée du type REG_SZ contenant l'ID de ressource du nom du marqueur de texte personnalisé. le format est #YYYY.
Package est entrée du type REG_SZ contenant GUID d'un VSPackage qui fournit le service sous le service. le format est {}.
pour créer un marqueur de texte personnalisé
Implémenter l'interface IVsPackageDefinedTextMarkerType.
votre implémentation de cette interface définit le comportement et l'apparence de votre type de marqueur personnalisé.
Cette interface est appelée lors
Un utilisateur démarre l'IDE pour la première fois.
Un utilisateur sélectionne le bouton de Restaurer les paramètres par défaut sous la page de propriétés de Polices et couleurs dans le dossier d' Environnement , situé dans le volet gauche de la boîte de dialogue d' Options obtenue du menu d' Outils de l'IDE.
Implémentez la méthode d' GetTextMarkerType , en spécifiant que l'implémentation d' IVsPackageDefinedTextMarkerType doit être retournée selon le type de marqueur GUID spécifié dans l'appel de méthode.
L'environnement appelle cette méthode pour la première fois que votre type de marqueur personnalisé est créé, et spécifie un GUID identifiant le type de marqueur personnalisé.
pour offrir votre type de marqueur en tant que service
appelez la méthode d' QueryService pour SProfferService.
Un pointeur vers IProfferService est retourné.
Appelez la méthode d' ProfferService , en spécifiant un GUID identifiant votre service personnalisé de type de marqueur et fournissant un pointeur vers votre implémentation de l'interface d' IServiceProvider . Votre implémentation d' IServiceProvider doit retourner un pointeur vers votre implémentation d'interface d' IVsTextMarkerTypeProvider .
Un seul cookie à reconnaître que votre service est retourné. Vous pouvez ensuite utiliser ce cookie pour révoquer votre service personnalisé de type de marqueur en appelant la méthode d' RevokeService d'interface d' IProfferService spécifiant cette valeur du cookie.
Voir aussi
Tâches
Comment : Ajoutez des marqueurs de texte standard
Comment : implémentez les marques d'erreurs
Concepts
Comment : marqueurs de texte d'utilisation