Partager via


ProvideLanguageCodeExpansionAttribute Classe

Définition

Inscrit la prise en charge du service de langage pour les extraits de code.

public ref class ProvideLanguageCodeExpansionAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
public ref class ProvideLanguageCodeExpansionAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)]
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class ProvideLanguageCodeExpansionAttribute : Microsoft.VisualStudio.Shell.RegistrationAttribute
[<System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
type ProvideLanguageCodeExpansionAttribute = class
    inherit RegistrationAttribute
Public NotInheritable Class ProvideLanguageCodeExpansionAttribute
Inherits RegistrationAttribute
Héritage
ProvideLanguageCodeExpansionAttribute
Attributs

Exemples

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

Notes

Visual C# permet une forme abrégée d’un attribut défini par l’utilisateur en supprimant la partie « Attribut » du nom. Ce formulaire abrégé est utilisé dans cet exemple et dans tous les autres exemples de 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  
    {  
    }  
}  

Remarques

Cet attribut défini par l’utilisateur (qui est spécifique à C#) est utilisé pour fournir les informations nécessaires pour inscrire la prise en charge d’un service de langage pour les extraits de code auprès de Visual Studio. Les valeurs spécifiées par cet attribut sont stockées en tant que métadonnées dans l’assembly. Ces métadonnées sont ensuite utilisées par un programme tel que regpkg.exe programme (qui fait partie du kit SDK VSIP) pour créer les clés de Registre et les entrées correspondantes qui informent Visual Studio du service de langage.

Les entrées de Registre affectées par se ProvideLanguageCodeExpansionAttribute trouvent 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 la langue] est le nom de la langue (comme spécifié dans le deuxième paramètre du constructeur de ProvideLanguageCodeExpansionAttribute classe).

  • [ID de ressource de nom de langue] est l’ID de ressource du nom de langue utilisé à des fins d’affichage et qui peut donc être localisé.

  • [chemin d’accès au fichier d’index d’extrait de code] est le chemin d’accès 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 des extraits de code. Cette chaîne est utilisée pour associer un ensemble d’extraits de code à un service de langage particulier.

  • [chemins d’accès aux extraits de code] liste délimitée par des points-virgules de chemins d’accès permettant de rechercher des extraits de code si le fichier d’index n’est pas disponible.

Les chemins d’accès peuvent contenir des variables de substitution qui pointent vers des emplacements tels que la racine installée pour Visual Studio et l’emplacement Mes documents de l’utilisateur. Pour plus d’informations sur ces variables de substitution, consultez Prise en charge des extraits de code dans un service de langage hérité .

Le constructeur de classe spécifie les paramètres minimum requis. Une classe d’attributs défini par l’utilisateur prend également en charge les paramètres nommés facultatifs. Ces paramètres nommés sont spécifiés dans la liste des paramètres du constructeur après les paramètres requis. Toutes les propriétés de cette classe qui prennent en charge les opérateurs get et set peuvent être spécifiées en tant que paramètre nommé. L’exemple montre comment les 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 Inscrit le service de langage auprès de Visual Studio et spécifie les fonctionnalités prises en charge.
ProvideLanguageExtensionAttribute Associe une extension de fichier au service de langage.
ProvideLanguageEditorOptionPageAttribute Spécifie un nœud de propriété ou une page pour la boîte de dialogue Options spécifique au service de langage.
ProvideLanguageCodeExpansionAttribute Spécifie les informations d’emplacement pour prendre en charge les extraits de code dans le service de langage.
ProvideServiceAttribute Inscrit un service de langage en tant que service Visual Studio. Tous les services fournis dans le code managé utilisent cet attribut.

Notes pour les héritiers

Cette classe d’attribut ne peut pas être héritée, il n’y a donc rien à implémenter.

Notes pour les appelants

Cette classe d’attribut est généralement appliquée à votre classe VSPackage principale, bien qu’elle puisse apparaître sur n’importe quelle classe. Cet attribut ne doit apparaître qu’une seule fois.

Constructeurs

ProvideLanguageCodeExpansionAttribute(Object, String, Int32, String, String)

Initialise une nouvelle instance de la classe ProvideLanguageCodeExpansionAttribute.

Propriétés

ForceCreateDirs

Obtient ou définit une chaîne délimitée par des points-virgules contenant le ou les répertoires qui doivent être créés.

LanguageName

Obtient le nom du langage.

LanguageServiceSid

Obtient le GUID du service de langage.

SearchPaths

Obtient ou définit une chaîne délimitée par des points-virgules contenant les chemins d'accès par défaut pour la recherche d'extraits de code.

ShowRoots

Obtient ou définit une valeur indiquant si les racines des extraits de code s'affichent.

TypeId

Remplacez la propriété TypeID pour permettre aux classes dérivées RegistrationAttribute de fonctionner avec System.ComponentModel.TypeDescriptor.GetAttributes(...). Un attribut dérivé de celui-ci ne doit remplacer cette propriété que s’il a besoin d’un meilleur contrôle sur les instances qui peuvent être appliquées à une classe.

(Hérité de RegistrationAttribute)

Méthodes

GetPackageRegKeyPath(Guid)

Obtient le chemin d'accès au Registre (relatif à la racine de Registre de l'application) du VSPackage.

(Hérité de RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

Crée toutes les entrées et clés de Registre comme spécifié par le constructeur de classe.

Unregister(RegistrationAttribute+RegistrationContext)

Supprime toutes les entrées et clés de Registre comme spécifié par le constructeur de classe.

S’applique à