Condividi tramite


ProvideLanguageCodeExpansionAttribute Classe

Definizione

Registra il supporto del servizio di linguaggio per frammenti di codice.

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
Ereditarietà
ProvideLanguageCodeExpansionAttribute
Attributi

Esempio

In questo esempio viene illustrato come viene usato questo attributo definito dall'utente per registrare il supporto per i frammenti di codice per un servizio di linguaggio.

Nota

Visual C# consente una forma abbreviata di un attributo definito dall'utente eliminando la parte "Attribute" del nome. Questo formato abbreviato viene usato in questo e in tutti gli altri esempi in questa 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  
    {  
    }  
}  

Commenti

Questo attributo definito dall'utente (specifico di C#) viene usato per fornire informazioni necessarie per registrare il supporto di un servizio di linguaggio per i frammenti di codice con Visual Studio. I valori specificati da questo attributo vengono archiviati come metadati nell'assembly. Questi metadati vengono usati successivamente da un programma, ad esempio regpkg.exe programma (parte di VSIP SDK) per creare le chiavi e le voci del Registro di sistema corrispondenti che indicano a Visual Studio il servizio di linguaggio.

Le voci del Registro di sistema interessate da ProvideLanguageCodeExpansionAttribute sono disponibili nella seguente chiave del Registro di sistema:

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]  

Dove:

  • [X.Y] è la versione di Visual Studio, ad esempio 8.0Exp.

  • [language name] è il nome della lingua (come specificato nel secondo parametro per il costruttore della ProvideLanguageCodeExpansionAttribute classe).

  • [ID risorsa nome lingua] è l'ID risorsa del nome della lingua usato a scopo di visualizzazione e può quindi essere localizzato.

  • [percorso del file di indice del frammento di codice] è il percorso completo del file di indice che descrive il percorso dei frammenti di codice.

  • [identificatore di lingua] è una stringa usata per contrassegnare tutti i frammenti di codice e il file di indice dei frammenti di codice. Questa stringa viene usata per associare un set di frammenti di codice a un determinato servizio di linguaggio.

  • [percorsi ai frammenti di codice] un elenco delimitato da punti e virgola di percorsi in cui cercare frammenti di codice se il file di indice non è disponibile.

I percorsi possono contenere variabili di sostituzione che puntano a percorsi quali la radice installata per Visual Studio e il percorso Documenti personali dell'utente. Per informazioni dettagliate su queste variabili di sostituzione, vedere Supporto per frammenti di codice in un servizio di linguaggio legacy .

Il costruttore della classe specifica i parametri minimi necessari. Una classe di attributi definita dall'utente supporta anche parametri denominati facoltativi. Questi parametri denominati vengono specificati nell'elenco dei parametri del costruttore dopo i parametri necessari. Tutte le proprietà di questa classe che supportano gli operatori get e set possono essere specificate come parametro denominato. Nell'esempio viene illustrato come vengono usati i parametri denominati.

Per i servizi linguistici vengono usati gli attributi definiti dall'utente seguenti:

Attributo Descrizione
ProvideLanguageServiceAttribute Registra il servizio di linguaggio con Visual Studio e specifica le funzionalità supportate.
ProvideLanguageExtensionAttribute Associa un'estensione di file al servizio di linguaggio.
ProvideLanguageEditorOptionPageAttribute Specifica un nodo o una pagina delle proprietà per la finestra di dialogo Opzioni specifica per il servizio di linguaggio.
ProvideLanguageCodeExpansionAttribute Specifica le informazioni sulla posizione per supportare frammenti di codice nel servizio di linguaggio.
ProvideServiceAttribute Registra un servizio linguistico come servizio di Visual Studio. Tutti i servizi forniti nel codice gestito usano questo attributo.

Note per gli eredi

Questa classe di attributi non può essere ereditata da, pertanto non è necessario implementare alcun elemento.

Note per i chiamanti

Questa classe di attributi viene in genere applicata alla classe VSPackage primaria, anche se può essere visualizzata in qualsiasi classe. Questo attributo deve essere visualizzato una sola volta.

Costruttori

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

Inizializza una nuova istanza della classe ProvideLanguageCodeExpansionAttribute.

Proprietà

ForceCreateDirs

Ottiene o imposta una stringa delimitata da punti e virgola contenente la directory o le directory che devono essere create.

LanguageName

Ottiene il nome del linguaggio.

LanguageServiceSid

Ottiene il GUID del servizio di linguaggio.

SearchPaths

Ottiene o imposta una stringa delimitata da punti e virgola contenente i percorsi predefiniti per la ricerca dei frammenti.

ShowRoots

Ottiene o imposta un valore che indica se le radici dei frammenti di codice devono essere visualizzate.

TypeId

Eseguire l'override della proprietà TypeID per consentire alle classi derivate RegistrationAttribute di usare System.ComponentModel.TypeDescriptor.GetAttributes(...). Un attributo derivato da questo deve eseguire l'override di questa proprietà solo se necessita di un controllo migliore sulle istanze che possono essere applicate a una classe.

(Ereditato da RegistrationAttribute)

Metodi

GetPackageRegKeyPath(Guid)

Ottiene il percorso del Registro di sistema (relativo alla radice del Registro di sistema dell'applicazione) del pacchetto VS.

(Ereditato da RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

Crea tutte le chiavi del Registro di sistema e le voci specificate dal costruttore di classe.

Unregister(RegistrationAttribute+RegistrationContext)

Rimuove tutte le chiavi del Registro di sistema e le voci specificate dal costruttore di classe.

Si applica a