Partager via


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

QueryService

IVsFontAndColorDefaults

IVsFontAndColorEvents

IVsFontAndColorStorage

IVsFontAndColorGroup

IVsFontAndColorDefaultsProvider

Concepts

Obtention de police et des informations sur la couleur pour la colorisation de texte

La police et paramètres de couleurs stockés de accès

Présentation de couleur et de police