Partager via


ProvideLanguageCodeExpansionAttribute, classe

Après-vente support de langage de registres pour des extraits de code.

Hiérarchie d'héritage

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

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

Syntaxe

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

Le type ProvideLanguageCodeExpansionAttribute expose les membres suivants.

Constructeurs

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

Début

Propriétés

  Nom Description
Propriété publique ForceCreateDirs Obtient ou définit une chaîne point-virgule- délimitée contenant le répertoire ou les répertoires qui doivent être créés.
Propriété publique LanguageName Obtient le nom du langage.
Propriété publique LanguageServiceSid Obtient GUID du service de langage.
Propriété publique SearchPaths Obtient ou définit une chaîne point-virgule- délimitée contenant les chemins d'accès par défaut pour rechercher des extraits de code.
Propriété publique ShowRoots Obtient ou définit si les racines des extraits de code doivent être montrées.
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 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 au C-) est utilisé pour fournir des informations nécessaires pour enregistrer un prise en charge du service de langage des extraits de code 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 le programme de 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 ProvideLanguageCodeExpansionAttribute sont recherchées sous la clé de Registre suivante :

HKEY_LOCAL_MACHINE\
  SOFTWARE\
    Microsoft\
      VisualStudio\
        [X.Y]\
          Languages\
            CodeExpansions\
              [language name]\
                (Default)    = reg_sz: [Language Service GUID]
                DisplayName  = reg_sz: [language name resource ID]
                IndexPath    = reg_sz: [path to snippet index file]
                Package      = reg_sz: [Package GUID]
                LangStringID = reg_sz: [language identifier]
                Paths\
                  (Default)       = reg_sz:
                  [language name] = reg_sz: [paths to snippets]

Où :

  • [X.Y] est la version de Visual Studio, par exemple, 8.0Exp.

  • [nom de langue] est le nom du langage (comme spécifié dans le deuxième paramètre au constructeur de classe d'ProvideLanguageCodeExpansionAttribute).

  • [ID de ressource de nom de langue] est l'ID de ressource du nom de langue qui est utilisé pour l'affichage et peut donc être localisé.

  • [chemin d'accès au fichier d'index d'extrait de code] est le chemin complet au fichier d'index qui décrit l'emplacement des extraits de code.

  • [identificateur de langue] est une chaîne utilisée pour marquer tous les extraits de code et le fichier d'index d'extraits de code.Cette chaîne est utilisée pour associer un jeu d'extraits de code avec un service de langage particulier.

  • [chemins d'accès aux extraits de code] un liste délimitée par des points-virgules des chemins d'accès pour rechercher des extraits de code si le fichier d'index est non disponible.

Les chemins d'accès peuvent contenir les variables de substitution qui indiquent des emplacements tels que la racine installée pour Visual Studio et ma localisation des documents de l'utilisateur.Consultez Prise en charge des extraits de code (managed de package) pour plus d'informations sur ces variables de substitution.

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.

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.Cet attribut doit apparaître qu'une seule fois.

Exemples

Cet exemple montre comment cet attribut défini par l'utilisateur est utilisé pour enregistrer la prise en charge des extraits de code pour un service de langage.

[!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;
        public const string languageIdentifier     = "mylanguage";
        public const string snippetsIndexFilePath   = @"%InstallRoot%\MyLanguage\SnippetsIndex.xml";
    }

    [ProvideCodeExpansion(typeof(MyLanguageService),
                            MyConstants.languageName,
                            MyConstants.languageNameResourceID,
                            MyConstants.languageIdentifier,
                            MyConstants.snippetsIndexFilePath,
        // Optional code expansion properties
        SearchPaths = @"%InstallRoot%\MyLanguage\Snippets\%LCID%\Snippets;" +
                      @"\%MyDocs%\Code Snippets\MyLanguage\My Code Snippets";
                         )]

    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

Autres ressources

Prise en charge des extraits de code (managed de package)