Freigeben über


ProvideLanguageCodeExpansionAttribute Klasse

Definition

Registriert Sprachdienstunterstützung für Codeausschnitte.

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
Vererbung
ProvideLanguageCodeExpansionAttribute
Attribute

Beispiele

In diesem Beispiel wird gezeigt, wie dieses benutzerdefinierte Attribut verwendet wird, um die Unterstützung für Codeausschnitte für einen Sprachdienst zu registrieren.

Hinweis

Visual C# ermöglicht eine Kurzform eines benutzerdefinierten Attributs, indem der Teil "Attribut" des Namens gelöscht wird. Diese Kurzform wird in diesem und allen anderen Beispielen in dieser Klasse verwendet.

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  
    {  
    }  
}  

Hinweise

Dieses benutzerdefinierte Attribut (spezifisch für C#) wird verwendet, um Informationen bereitzustellen, die erforderlich sind, um die Unterstützung eines Sprachdiensts für Codeausschnitte bei Visual Studio zu registrieren. Die von diesem Attribut angegebenen Werte werden als Metadaten in der Assembly gespeichert. Diese Metadaten werden später von einem Programm wie regpkg.exe Programm (Teil des VSIP SDK) verwendet, um die entsprechenden Registrierungsschlüssel und Einträge zu erstellen, die Visual Studio über den Sprachdienst informieren.

Die von dem ProvideLanguageCodeExpansionAttribute betroffenen Registrierungseinträge finden Sie unter dem folgenden Registrierungsschlüssel:

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]  

Hierbei gilt:

  • [X.Y] ist die Version von Visual Studio, z. B. 8.0Exp.

  • [Sprachname] ist der Name der Sprache (wie im zweiten Parameter für den ProvideLanguageCodeExpansionAttribute Klassenkonstruktor angegeben).

  • [Sprachnameressourcen-ID] ist die Ressourcen-ID des Sprachnamens, der für Anzeigezwecke verwendet wird und daher lokalisiert werden kann.

  • [Pfad zur Codeausschnittindexdatei] ist der vollständige Pfad zur Indexdatei, die den Speicherort der Codeausschnitte beschreibt.

  • [Sprachbezeichner] ist eine Zeichenfolge, die zum Markieren aller Codeausschnitte und der Codeausschnittindexdatei verwendet wird. Diese Zeichenfolge wird verwendet, um einem bestimmten Sprachdienst eine Reihe von Codeausschnitten zuzuordnen.

  • [Pfade zu Codeausschnitten] eine durch Semikolon getrennte Liste von Pfaden zum Suchen nach Codeausschnitten, wenn die Indexdatei nicht verfügbar ist.

Die Pfade können Ersetzungsvariablen enthalten, die auf Speicherorte wie den installierten Stamm für Visual Studio und den Speicherort "Eigene Dokumente" des Benutzers verweisen. Ausführliche Informationen zu diesen Ersetzungsvariablen finden Sie unter Unterstützung von Codeausschnitten in einem Legacy Language Service .

Der Klassenkonstruktor gibt die minimal erforderlichen Parameter an. Eine benutzerdefinierte Attributklasse unterstützt auch optionale benannte Parameter. Diese benannten Parameter werden in der Parameterliste des Konstruktors nach den erforderlichen Parametern angegeben. Alle Eigenschaften dieser Klasse, die sowohl get- als auch set-Operatoren unterstützen, können als benannter Parameter angegeben werden. Das Beispiel zeigt, wie benannte Parameter verwendet werden.

Die folgenden benutzerdefinierten Attribute werden für Sprachdienste verwendet:

attribute BESCHREIBUNG
ProvideLanguageServiceAttribute Registriert den Sprachdienst bei Visual Studio und gibt an, welche Features unterstützt werden.
ProvideLanguageExtensionAttribute Ordnet dem Sprachdienst eine Dateierweiterung zu.
ProvideLanguageEditorOptionPageAttribute Gibt einen Eigenschaftenknoten oder eine Seite für das Dialogfeld Optionen an, das für den Sprachdienst spezifisch ist.
ProvideLanguageCodeExpansionAttribute Gibt Standortinformationen an, um Codeausschnitte im Sprachdienst zu unterstützen.
ProvideServiceAttribute Registriert einen Sprachdienst als Visual Studio-Dienst. Alle Dienste, die in verwaltetem Code bereitgestellt werden, verwenden dieses Attribut.

Hinweise für Vererber

Diese Attributklasse kann nicht von geerbt werden, sodass es nichts zu implementieren gibt.

Hinweise für Aufrufer

Diese Attributklasse wird in der Regel auf Ihre primäre VSPackage-Klasse angewendet, kann jedoch in jeder Klasse angezeigt werden. Dieses Attribut sollte nur einmal angezeigt werden.

Konstruktoren

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

Initialisiert eine neue Instanz der ProvideLanguageCodeExpansionAttribute-Klasse.

Eigenschaften

ForceCreateDirs

Ermittelt oder bestimmt eine durch Semikolons getrennte Zeichenfolge, die das Verzeichnis oder die Verzeichnisse enthält, das bzw. die erstellt werden sollen.

LanguageName

Ruft den Namen der Sprache ab.

LanguageServiceSid

Ruft die GUID des Sprachdiensts ab.

SearchPaths

Ermittelt oder bestimmt eine durch Semikolons getrennte Zeichenfolge, die die Standardpfade für die Suche nach Ausschnitten enthält.

ShowRoots

Ruft ab oder legt fest, ob die Stammelemente der Codeausschnitte angezeigt werden.

TypeId

Überschreiben Sie die TypeID-Eigenschaft, damit die von RegistrationAttribute abgeleiteten Klassen mit System.ComponentModel.TypeDescriptor.GetAttributes(...) arbeiten können. Ein von diesem abgeleitetes Attribut muss diese Eigenschaft nur überschreiben, wenn es ein besseres Steuerelement für die Instanzen benötigt, die auf eine Klasse angewendet werden können.

(Geerbt von RegistrationAttribute)

Methoden

GetPackageRegKeyPath(Guid)

Ruft den Registrierungspfad (relativ zum Registrierungsstamm der Anwendung) des VSPackages ab.

(Geerbt von RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

Erstellt alle Registrierungsschlüssel und Einträge, wie vom Klassenkonstruktor angegeben.

Unregister(RegistrationAttribute+RegistrationContext)

Entfernt alle Registrierungsschlüssel und -einträge, wie vom Klassenkonstruktor angegeben.

Gilt für: