ProvideLanguageCodeExpansionAttribute Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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. |