Implémenter des catégories personnalisées et les éléments d'affichage
Un VSPackage peut fournir le contrôle des polices et les couleurs de son texte à l'environnement de développement intégré (IDE) de (IDE) Visual Studio via des catégories personnalisées et des éléments d'affichage.
Les catégories personnalisées et les éléments d'affichage sont dans la page de propriétés de Polices et couleurs . Pour ouvrir la page de propriétés de Polices et couleurs , dans le menu d' Outils , cliquez sur Options. Développez Environnement puis cliquez sur Polices et couleurs.
En utilisant ce mécanisme, les VSPackages doit implémenter l'interface d' IVsFontAndColorDefaultsProvider et ses interfaces associées.
En principe, ce mécanisme peut être utilisé pour modifier toutes les Éléments affichés existant et Catégories qui les contiennent. Toutefois, il ne doit pas être utilisée pour modifier Éditeur de texteCategory ou son Éléments affichés. Pour plus d'informations, consultez Présentation de couleur et de police.
pour implémenter Catégories personnalisé ou Éléments affichés, un VSPackage doit :
créez ou identifiez les catégories dans le Registre.
L'implémentation de la page de propriétés de Polices et couleurs utilise ces informations pour interroger correctement pour le service qui prend en charge une catégorie donnée.
Créez ou identifiez les groupes (facultatif) dans le Registre.
il peut être utile de définir un groupe, qui représente l'union de deux catégories ou plus. Si un groupe est défini, l'IDE fusionne automatiquement les sous-catégories et distribue les éléments d'affichage du groupe.
Implémentez la prise en charge de l'IDE.
Modifications de couleur et de police de handle.
Pour plus d'informations, consultez La police et paramètres de couleurs stockés de accès.
pour créer ou identifier des catégories
construisez un type particulier d'entrée du Registre de catégorie sous [HKLM \SOFTWARE\Microsoft \Visual Studio \ <Visual Studio version> \FontAndColors \<Category>]
<Category> est le nom non localisé de la catégorie.
remplissez Registre avec deux valeurs :
Nom
Type
Données
Description
Catégorie
REG_SZ
GUID
GUID créé pour identifier la catégorie.
Package
REG_SZ
GUID
GUID du service de VSPackage qui prend en charge la catégorie.
le service spécifié dans le Registre doit fournir une implémentation d' IVsFontAndColorDefaults pour la catégorie correspondante.
pour créer ou identifier des groupes
construisez un type particulier d'entrée du Registre de catégorie sous [HKLM \SOFTWARE\Microsoft \Visual Studio \ <Visual Studio version> \FontAndColors \ <group> ]
<group> est le nom non localisé du groupe.
remplissez Registre avec deux valeurs :
Nom
Type
Données
Description
Catégorie
REG_SZ
GUID
GUID créé pour identifier le groupe.
Package
REG_SZ
GUID
GUID du service qui prend en charge la catégorie.
le service spécifié dans le Registre doit fournir une implémentation d' T:Microsoft.VisualStudio.Shell.Interop.IVsFontAndColorGroup pour le groupe correspondant.
Pour implémenter la prise en charge de l'IDE
Implémentez GetObject, qui retourne une interface d' IVsFontAndColorDefaults ou une interface d' T:Microsoft.VisualStudio.Shell.Interop.IVsFontAndColorGroup à l'IDE pour chaque Category ou groupe GUID fourni.
Pour chaque Category il prend en charge, un VSPackage implémente une instance séparée de l'interface d' IVsFontAndColorDefaults .
Les méthodes implémentées via IVsFontAndColorDefaults doivent fournir à l'IDE :
listes d' Éléments affichés dans catégorie.
noms localisables pour Éléments affichés.
les informations d'affichage pour chaque membre de Category.
Notes
chaque Category doit contenir au moins un élément d'affichage.
L'IDE utilise l'interface d' T:Microsoft.VisualStudio.Shell.Interop.IVsFontAndColorGroup pour définir une union plusieurs catégories.
Son implémentation fournit à l'IDE :
Une liste de Catégories qui forment un groupe donné.
Accédez aux instances d' IVsFontAndColorDefaults prenant en charge chaque Category du groupe.
Noms de groupes localisables.
Mettre à jour l'IDE :
Les informations de caches de l'IDE sur les paramètres de Police et couleurs . Par conséquent, après toute modification de la configuration de l'IDE Police et couleurs , il est recommandé de s'assurer que le cache est à jour.
Mettre à jour le cache est effectuée via l'interface d' IVsFontAndColorCacheManager et peut être effectuée globalement ou uniquement sur les éléments sélectionnés.
Pour gérer la police et la couleur des modifications
Pour prendre en charge correctement la colorisation du texte qu'un VSPackage affiche, le service de colorisation prenant en charge le VSPackage doit répondre aux modifications apportées initiées par l'utilisateur via la page de propriétés de Polices et couleurs . Un VSPackage fait cela :
Gestion des événements IDE-générés en implémentant l'interface d' IVsFontAndColorEvents .
L'IDE appelle les modifications suivantes d'utilisateur de méthode appropriée de la page de Polices et couleurs . par exemple, elle appelle la méthode d' OnFontChanged si une nouvelle police est sélectionnée.
ou
Interrogation de l'IDE pour les modifications.
Cette opération peut être effectuée via l'interface système-implémentée d' IVsFontAndColorStorage . Bien que principalement pour la prise en charge de la persistance, la méthode d' GetItem puisse être utilisée pour obtenir la police et des informations sur la couleur pour Éléments affichés. Pour plus d'informations, consultez La police et paramètres de couleurs stockés de accès.
Notes
Pour garantir que les résultats obtenus par l'interrogation sont corrects, il peut être utile d'utiliser l'interface d' IVsFontAndColorCacheManager pour déterminer si un vidage du cache et une mise à jour sont nécessaires avant d'appeler les méthodes de récupération d'interface d' IVsFontAndColorStorage .
Voir aussi
Tâches
Comment : Accédez aux polices et au modèle de couleurs prédéfinis
Référence
IVsFontAndColorDefaultsProvider
Concepts
Obtention de police et des informations sur la couleur pour la colorisation de texte