Partager via


ColorableItem, classe

Fournit une implémentation par défaut de l'interface IVsColorableItem de VSIP.

Cette API n'est pas conforme CLS. 

Hiérarchie d'héritage

System.Object
  Microsoft.VisualStudio.Package.ColorableItem

Espace de noms :  Microsoft.VisualStudio.Package
Assemblys :   Microsoft.VisualStudio.Package.LanguageService (dans Microsoft.VisualStudio.Package.LanguageService.dll)
  Microsoft.VisualStudio.Package.LanguageService.10.0 (dans Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.11.0 (dans Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.9.0 (dans Microsoft.VisualStudio.Package.LanguageService.9.0.dll)

Syntaxe

'Déclaration
<ComVisibleAttribute(True)> _
<CLSCompliantAttribute(False)> _
Public Class ColorableItem _
    Implements IVsColorableItem, IVsHiColorItem, IVsMergeableUIItem
[ComVisibleAttribute(true)]
[CLSCompliantAttribute(false)]
public class ColorableItem : IVsColorableItem, 
    IVsHiColorItem, IVsMergeableUIItem

Le type ColorableItem expose les membres suivants.

Constructeurs

  Nom Description
Méthode publique ColorableItem Initialise la classe d'ColorableItem et reçoit toutes les informations nécessaires pour décrire un élément coloriable.

Début

Méthodes

  Nom Description
Méthode publique Equals Détermine si l'objet Object spécifié est égal à l'objet Object actuel. (Hérité de Object.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique GetCanonicalName Obtient le nom canonique d'un élément coloriable.
Méthode publique GetColorData Obtenez l'élément spécifié de premier plan ou d'arrière-plan de 65536 couleurs.
Méthode publique GetDefaultColors Retourne le premier plan et la couleur d'arrière-plan pour cet élément coloriable.
Méthode publique GetDefaultFontFlags Retourne les attributs de police pour cet élément coloriable.
Méthode publique GetDescription Retourne une description pour cet élément coloriable.
Méthode publique GetDisplayName Retourne le nom de cet élément coloriable.
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetMergingPriority Retourne la priorité que que cet élément coloriable a une fois comparé à d'autres éléments qui autorisent la modification de la couleur de la même chose nomment.
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)

Début

Remarques

Cette classe est utilisée pour définir des couleurs personnalisées utilisées par le service de langage pour mettre en surbrillance de syntaxe.La méthode d'GetColorableItem sur votre implémentation de la classe d'LanguageService retourne un objet spécifié d'IVsColorableItem.

Remarques à l'attention des implémenteurs

Cette classe peut être utilisée pour implémenter l'interface d'IVsColorableItem.Construisez simplement une nouvelle instance de cette classe pour chaque couleur personnalisée que que vous souhaitez implémenter, et retourne ensuite l'élément coloriable approprié de la méthode d'GetColorableItem.

L'emplacement idéal pour construire une matrice de couleurs personnalisées est dans le constructeur de votre implémentation de la classe d'LanguageService.Si vous prenez en charge la personnalisation des couleurs, vous initialiseriez cette matrice dans l'LanguageService.CreateDocumentProperties après que l'objet d'DocumentProperties ait été créé.

Remarques à l'attention des appelants

Cette classe est en général utilisée par la classe d'Colorizer dans son implémentation d'ColorizeLine.

Exemples

Cela montre un exemple de l'implémentation d'LanguageService qui des prises en charge deux couleurs personnalisées (supplémentaire peut être facilement ajouté).Notez que le premier élément coloriable jamais est référencé et réellement est utilisé comme espace réservé (tous les index de couleurs sont passés au début d'GetColorableItem à 1).

[C#]
namespace MyLanguagePackage
{
    [Guid("B614A40A-80D9-4fac-A6AD-FC2868FFF7CD")]
    public class MyLanguageService : LanguageService
    {
        private ColorableItem[] m_colorableItems;

        public MyLanguageService()
            : base()
        {
                m_colorableItems = new ColorableItem[] {
                    new ColorableItem("Text",
                                      COLORINDEX.CI_SYSPLAINTEXT_FG,
                                      COLORINDEX.CI_SYSPLAINTEXT_BK,
                                      System.Drawing.Color.Empty,
                                      System.Drawing.Color.Empty,
                                      FONTFLAGS.FF_DEFAULT),
                    new ColorableItem("Keyword",
                                      COLORINDEX.CI_MAROON,
                                      COLORINDEX.CI_SYSPLAINTEXT_BK,
                                      System.Drawing.Color.Empty,
                                      System.Drawing.Color.Empty,
                                      FONTFLAGS.FF_BOLD),
                    new ColorableItem("Comment",
                                      COLORINDEX.CI_GREEN,
                                      COLORINDEX.CI_SYSPLAINTEXT_BK,
                                      System.Drawing.Color.Empty,
                                      System.Drawing.Color.Empty,
                                      FONTFLAGS.FF_DEFAULT)
                };
        }
    }
}

Sécurité des threads

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Microsoft.VisualStudio.Package, espace de noms