Partager via


ProvideLanguageServiceAttribute, classe

Informe à Visual Studio qu'un VSPackage fournit un service de langage.Utilisé avec l'infrastructure managée de package. (MPF)

Hiérarchie d'héritage

System.Object
  System.Attribute
    Microsoft.VisualStudio.Shell.RegistrationAttribute
      Microsoft.VisualStudio.Shell.ProvideLanguageServiceAttribute

Espace de noms :  Microsoft.VisualStudio.Shell
Assembly :  Microsoft.VisualStudio.Shell.11.0 (dans Microsoft.VisualStudio.Shell.11.0.dll)

Syntaxe

'Déclaration
<AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple := True, Inherited := True)> _
Public NotInheritable Class ProvideLanguageServiceAttribute _
    Inherits RegistrationAttribute
[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public sealed class ProvideLanguageServiceAttribute : RegistrationAttribute

Le type ProvideLanguageServiceAttribute expose les membres suivants.

Constructeurs

  Nom Description
Méthode publique ProvideLanguageServiceAttribute Initialise une nouvelle instance de la classe Shell.ProvideLanguageServiceAttribute.

Début

Propriétés

  Nom Description
Propriété publique AutoOutlining Détermine si le mode Plan automatique de service prend en charge de langage.
Propriété publique CodeSense Détermine si les opérations d'Intellisense de service prend en charge de langage.
Propriété publique CodeSenseDelay Détermine la durée avant qu'une opération d'analyse soit démarrée pour prendre en charge une opération d'Intellisense.
Propriété publique DebuggerLanguageExpressionEvaluator Détermine l'évaluateur d'expression qui est utilisé pour évaluer des expressions.
Propriété publique DefaultToInsertSpaces Détermine le paramètre par défaut pour l'option d'Insérer des espaces dans la boîte de dialogue d'Options pour un service de langage.
Propriété publique DefaultToNonHotURLs Détermine le paramètre initiale de l'option de Activer la navigation dans les URL par simple clic dans la boîte de dialogue d'Options.
Propriété publique EnableAdvancedMembersOption Détermine si l'option de Masquer les membres avancés est activée dans la boîte de dialogue d'Options.
Propriété publique EnableAsyncCompletion Détermine si l'analyse d'arrière-plan de prises en charge linguistique.
Propriété publique EnableCommenting Détermine si le service de langage peut commenter et annuler les marques de commentaire code source à l'aide d'une commande unique.
Propriété publique EnableFormatSelection Détermine si la mise en forme automatique de service prend en charge de langage de code source.
Propriété publique EnableLineNumbers Détermine si l'option de Numérotation des lignes peut être sélectionnée dans la boîte de dialogue d'Options.
Propriété publique HideAdvancedMembersByDefault Détermine l'état initial de l'option de Masquer les membres avancés dans la boîte de dialogue d'options.
Propriété publique LanguageName Infrastructure. Retourne le nom du langage.
Propriété publique LanguageResourceID Infrastructure. Retourne l'ID de ressource utilisé pour obtenir la version localisée du nom de langue.
Propriété publique LanguageServiceSid Infrastructure. Retourne GUID du service de langage.
Propriété publique MatchBraces Détermine si le service prend en charge de langage correspondant à des couples de langue.
Propriété publique MatchBracesAtCaret Détermine si les service prend en charge d'un langage correspondant à des couples de langue en tapant.
Propriété publique MaxErrorMessages Détermine le nombre maximal de message d'erreurs qu'un service de langage peut stocker pour une opération d'analyse.
Propriété publique QuickInfo Détermine si le service prend en charge de langage l'info express d'Intellisense.
Propriété publique RequestStockColors Détermine si le service de langage utilise les éléments prédéfinis qui autorisent la modification de la couleur comme fourni par Visual Studio.
Propriété publique ShowCompletion Détermine si les options de Saisie semi-automatique des instructions sont activées dans la boîte de dialogue d'Options.
Propriété publique ShowDropDownOptions Détermine si l'option de barre de navigation est activée dans la boîte de dialogue d'Options.
Propriété publique ShowHotURLs Détermine si des URL sont affichés de façon à les montrer peuvent être sélectionnés sur.Cette option n'est pas utilisée.
Propriété publique ShowMatchingBrace Détermine si le domaine de langues correspondant est montré dans la barre d'état.
Propriété publique ShowSmartIndent Détermine si l'option de Retrait intelligent est activée dans la boîte de dialogue d'Options.
Propriété publique SingleCodeWindowOnly Détermine si Fenêtre - > la commande de Nouvelle fenêtre est désactivée pour un service de langage.
Propriété publique SupportCopyPasteOfHTML Détermine si le service prend en charge de langage le HTML de format de presse-papiers pour la copie et les opérations de collage.
Propriété publique TypeId Obtient l'instance actuel de cet attribut. (Hérité de RegistrationAttribute.)

Début

Méthodes

  Nom Description
Méthode publique Equals Infrastructure. Retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute.)
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 GetHashCode Retourne le code de hachage de cette instance. (Hérité de Attribute.)
Méthode protégée GetPackageRegKeyPath Obtient le chemin d'accès au Registre (par rapport à la racine de Registre de l'application) du VSPackage. (Hérité de RegistrationAttribute.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publique IsDefaultAttribute En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut pour la classe dérivée. (Hérité de Attribute.)
Méthode publique Match En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute.)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publique Register Infrastructure. Crée toutes les clés de Registre et entrées comme spécifiées par le constructeur de classe. (Substitue RegistrationAttribute.Register(RegistrationAttribute.RegistrationContext).)
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Méthode publique Unregister Supprime toutes les clés de Registre et entrées comme spécifiées par le constructeur de classe. (Substitue RegistrationAttribute.Unregister(RegistrationAttribute.RegistrationContext).)

Début

Implémentations d'interface explicite

  Nom Description
Implémentation d'interface expliciteMéthode privée _Attribute.GetIDsOfNames Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Attribute.)
Implémentation d'interface expliciteMéthode privée _Attribute.GetTypeInfo Récupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface. (Hérité de Attribute.)
Implémentation d'interface expliciteMéthode privée _Attribute.GetTypeInfoCount Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1). (Hérité de Attribute.)
Implémentation d'interface expliciteMéthode privée _Attribute.Invoke Fournit l'accès aux propriétés et aux méthodes exposées par un objet. (Hérité de Attribute.)

Début

Remarques

Cet attribut défini par l'utilisateur (qui est spécifique à Visual C#) est utilisé pour fournir des informations nécessaires pour enregistrer un service de langage avec Visual Studio.Les valeurs spécifiées par cet attribut sont enregistrées en tant que métadonnées dans l'assembly.Ce les métadonnées sont utilisées ultérieurement par un programme tel que regpkg.exe (une partie du SDK VSIP) pour créer les clés de Registre correspondantes et des entrées qui indiquent Visual Studio relatives au service de langage.

Les entrées du Registre affectées par ProvideLanguageServiceAttribute sont recherchées sous la clé de Registre suivante :

HKEY_LOCAL_MACHINE\
  SOFTWARE\
    Microsoft\
      VisualStudio\
        [X.Y]\
          Languages\
            Language Services\
              [language name]\
                (Default) = reg_sz: [Language Service GUID]
                Package   = reg_sz: [Package GUID]
                LangResID = reg_dword: [language name resource ID]

Où [X.Y] est la version de Visual Studio, par exemple, 8.0Exp, et [nom de langue] est le nom du langage (comme spécifié dans le deuxième paramètre au constructeur de classe d'ProvideLanguageServiceAttribute).

[!REMARQUE]

Chaque propriété spécifie l'entrée du Registre précise qu'elle l'affecte pour que ces entrées ne sont pas montrées dans l'exemple ci-dessus.Ces entrées supplémentaires apparaissent au même niveau que les trois entrées montrées.

Le constructeur de classe spécifie les paramètres requis minimum.Une classe d'attributs définie par l'utilisateur prend en charge également des paramètres nommés facultatifs.Ces paramètres nommés sont spécifiés dans la liste de paramètres du constructeur après les paramètres requis.Toutes les propriétés sur cette classe qui prennent en charge les deux commande get et opérateurs d'ensemble peuvent être spécifiées comme paramètre nommé.L'exemple montre comment des paramètres nommés sont utilisés.

[!REMARQUE]

Certains des paramètres nommés sont spécifiques à l'infrastructure managée de package et (MPF) ceux-ci sont notés dans chaque description de la propriété.

Les attributs définis par l'utilisateur suivants sont utilisés pour les services linguistiques :

Attribut

Description

ProvideLanguageServiceAttribute

Enregistre le service de langage avec Visual Studio et spécifie les fonctionnalités sont prises en charge.

ProvideLanguageExtensionAttribute

Associe une extension de fichier avec le service de langage.

ProvideLanguageEditorOptionPageAttribute

Spécifie un nœud ou une page de propriété pour le détail de boîte de dialogue d'options au service de langage.

ProvideLanguageCodeExpansionAttribute

Spécifie les informations d'emplacement pour prendre en charge des extraits de code dans le service de langage.

ProvideServiceAttribute

Enregistre un service de langage comme un service de Visual Studio.Tous les services fournis en code managé utilisent cet attribut.

Remarques à l'attention des implémenteurs

Cette classe d'attributs ne peut pas être héritée de il est rien à implémenter.

Remarques à l'attention des appelants

Cette classe d'attributs est en général appliquée à votre classe primaire d'un VSPackage, mais elle peut s'afficher sur n'importe quelle classe.Cette classe doit apparaître qu'une seule fois pour chaque service de langage vos prises en charge d'un VSPackage.

Exemples

Cet exemple montre comment cet attribut défini par l'utilisateur est utilisé pour enregistrer un service de langage qui prend en charge des opérations d'Intellisense, la correspondance d'accolade, l'analyse (d'arrière-plan) asynchrone, et des éléments qui autorisent la modification de la couleur personnalisés.

[!REMARQUE]

Visual C# permet d'un formulaire abrégée d'un attribut défini par l'utilisateur en supprimant la partie « attribut » du nom.Ce formulaire abrégée est utilisé dans cette et tous les autres exemples dans cette classe.

using Microsoft.VisualStudio.Shell;

namespace MyLanguagePackage
{
    internal class MyConstants
    {
        public const string languageName           = "MyLanguage";
        public const int    languageNameResourceID = 106;
    }

    [ProvideLanguageService(typeof(MyLanguageService),
                            MyConstants.languageName,
                            MyConstants.languageNameResourceID,
        // Optional language service properties
        CodeSense             = true,  // General IntelliSense support
        RequestStockColors    = false, // Custom colorable items
        EnableASyncCompletion = true,  // supports background parsing
        MatchBraces           = true,  // Match braces on command
        MatchBracesAtCaret    = true   // Match braces while typing
                           )]

    class MyLanguagePackage
    {
    }
}

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.Shell, espace de noms