Freigeben über


Exemplarische Vorgehensweise: Wenn Sie einen Sprachdienst (Managed Paketframework)

Verwenden von Sprachunterrichte des verwalteten Paketframeworks (MPF), einen Sprachdienst in Visual C# ist einfach zu implementieren. Sie benötigen ein VSPackage zum Hosten der Sprachdienst, der Sprachdienst selbst und ein Parser für die Sprache.

Vorbereitungsmaßnahmen

Zum Abschließen dieser exemplarischen Vorgehensweise müssen Sie Visual Studio 2010 SDKinstallieren.

Hinweis

Weitere Informationen über das Visual Studio-SDK finden Sie unter Erweitern von Visual Studio Overview.Um herauszufinden finden Sie unter wie das Visual Studio-SDK, auf Visual Studio Extensibility Developer Center der MSDN-Website herunterlädt.

Speicherorte für die Visual Studio-Paket-Projektvorlage

Die Visual Studio-Paket-Projektvorlage kann in drei verschiedenen Vorlagen im Dialogfeld Neues Projekt speicherorten gefunden werden:

  1. Klicken Sie unter Von Visual Basic-Erweiterbarkeit. Die Standardsprache des Projekts ist Visual Basic.

  2. Die C#-Erweiterbarkeit. Die Standardsprache ist C# des Projekts.

  3. Verwenden anderer Projekttyp-Erweiterbarkeit. Die Standardsprache des Projekts ist C++.

Erstellen Sie ein VSPackage

  1. Erstellen Sie ein neues VSPackages mit der Visual Studio-Paket importieren.

    Wenn Sie einen Sprachdienst zu vorhandenen VSPackage hinzufügen, überspringen Sie die folgenden Schritte aus, und fahren Sie direkt zur Prozedur „erstellen, der Sprachendienst-Klasse“.

  2. Geben Sie MyLanguagePackage für den Namen des Projekts ein, und klicken Sie auf OK.

    Sie können den Namen verwenden. Diese Prozeduren einzeln hier aufgeführt sind, nehmen MyLanguagePackage als Namen an.

  3. Wählen Sie Visual C# als die Sprache und die Option, eine neue Schlüsseldatei zu generieren. Klicken Sie auf Next.

  4. Geben Sie die entsprechenden Unternehmens- und Paketinformationen. Klicken Sie auf Next.

  5. Wählen Sie Menübefehl. Klicken Sie auf Next.

    Wenn Sie nicht beabsichtigen, Codeausschnitte unterstützen, können Sie einfach auf Fertig stellen klicken, und den nächsten Schritt ignorieren.

  6. Geben Sie Ausschnitt einfügen und Befehlsname als cmdidInsertSnippet für Befehls-IDein. Klicken Sie auf Fertig stellen.

    Befehlsname und Befehls-ID können den gewünschten sein, diese sind derzeit Beispiele.

Erstellen Sie die Sprachendienst-Klasse

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf MyLanguagePackage-Projekt auswählen und auf dem Verweis hinzufügen.

  2. Im Dialogfeld Verweis hinzufügen im ausgewählten Microsoft.VisualStudio.Package.LanguageService in der .NET Registerkarte, und klicken Sie auf OK.

    Dies muss nur einmal Paket Sprachen für das Projekt ausgeführt werden.

  3. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf VSPackage-Projekt auswählen und auf dem Hinzufügen - > Klasse.

  4. Stellen Sie sicher, dass Klasse in der Vorlagenliste ausgewählt ist.

  5. Geben Sie MyLanguageService.cs für den Namen der Klassendatei ein, und klicken Sie auf Hinzufügen.

    Sie können den Namen verwenden. Diese Prozeduren einzeln hier aufgeführt sind, nehmen MyLanguageService als Namen an.

  6. In der MyLanguageService.cs-Datei using fügen Sie die folgenden Anweisungen hinzu.

    Imports Microsoft.VisualStudio
    Imports Microsoft.VisualStudio.Package
    Imports Microsoft.VisualStudio.TextManager.Interop
    Imports Microsoft.VisualStudio.OLE.Interop
    
    using Microsoft.VisualStudio;
    using Microsoft.VisualStudio.Package;
    using Microsoft.VisualStudio.TextManager.Interop;
    using Microsoft.VisualStudio.OLE.Interop;
    
  7. Ändern Sie die MyLanguageService-Klasse, die aus der LanguageService-Klasse abzuleiten:

        Friend Class MyLanguageService
            Inherits LanguageService
    
    class MyLanguageService : LanguageService
    
  8. Positionieren Sie die Einfügemarke auf „LanguageService“ und Bearbeiten - Menü > die Option IntelliSenseAbstrakte Klasse implementieren. Dadurch wird die minimal erforderlichen Methoden Sprachdienst hinzu, um eine Klasse zu implementieren.

  9. Implementieren Sie die abstrakten Methoden, wie in Wenn Sie einen Sprachdienst (Managed Paketframework implementieren)beschrieben.

Registrieren Sie den Sprachdienst

  1. Öffnen Sie die MyLanguagePackagePackage.cs-Datei, und fügen Sie die folgenden Anweisungen using hinzu:

    Imports Microsoft.VisualStudio
    Imports Microsoft.VisualStudio.Package
    Imports Microsoft.VisualStudio.TextManager.Interop
    
    using Microsoft.VisualStudio;
    using Microsoft.VisualStudio.Package;
    using Microsoft.VisualStudio.TextManager.Interop;
    
  2. Registrieren Sie die Klasse Sprachdienst, wie in Wenn Sie einen Sprachdienst registrieren (Managed Paketframework)beschrieben. Dies schließt die ProvideXX-Attribute und Abschnitte des Sprachdiensts Vorbringen „, das als“ ein. Verwendung MyLanguageService, wo dieses Thema TestLanguageService verwendet.

Der Parser und der Scanner

Sprachendienst-Funktionen

Um jede Funktion in der Sprachdienst zu implementieren, leiten Sie i. d. R. eine Klasse von der entsprechenden MPF-Sprachendienst Klasse, implementieren alle abstrakten Methoden überschreiben und gegebenenfalls die entsprechenden Methoden. Erstellen und/oder leiten sich von welchen Klassen, ist von den Funktionen abhängig, die Sie sichern möchten. Diese Funktionen werden ausführlich in Sprachendienst-Funktionen (Managed Paketframework)erläutert. In der folgenden Prozedur wird der allgemeine Ansatz zum Ableiten einer Klasse aus den MPF-Klassen.

Von einer abgeleiteten MPF-Klasse

  1. Klicken Sie mit der rechten Maustaste auf den im Projektmappen-ExplorerVSPackage-Projekt und > - Hinzufügen Sie unter Klasse.

  2. Stellen Sie sicher, dass Klasse in der Vorlagenliste ausgewählt ist.

    Geben Sie einen passenden Namen für die Klassendatei ein, und klicken Sie auf Hinzufügen.

  3. In der neuen Klassendatei using fügen Sie die folgenden Anweisungen hinzu.

    Imports Microsoft.VisualStudio
    Imports Microsoft.VisualStudio.Package
    Imports Microsoft.VisualStudio.TextManager.Interop
    Imports Microsoft.VisualStudio.OLE.Interop
    
    using Microsoft.VisualStudio;
    using Microsoft.VisualStudio.Package;
    using Microsoft.VisualStudio.TextManager.Interop;
    using Microsoft.VisualStudio.OLE.Interop;
    
  4. Ändern Sie die Klasse so, dass sie von der gewünschten MPF-Klasse zu berechnen.

  5. Fügen Sie einen Klassenkonstruktor, der mindestens dieselben Parameter wie der Konstruktor der Basisklasse hinzu, und leiten Sie nimmt die Konstruktorparameter für den Basisklassenkonstruktor weiter.

    Zum Beispiel könnte der Konstruktor für eine Klasse, die von der Source-Klasse abgeleitet ist, wie folgt aussehen:

    Namespace MyLanguagePackage
        Friend Class MySource
            Inherits Source
            Public Sub New(ByVal service As LanguageService, ByVal textLines As IVsTextLines,
                           ByVal colorizer As Colorizer)
                MyBase.New(service, textLines, colorizer)
            End Sub 
        End Class 
    End Namespace
    
    namespace MyLanguagePackage
    {
        class MySource : Source
        {
            public MySource(LanguageService service,
                            IVsTextLines textLines,
                            Colorizer colorizer)
                : base(service, textLines, colorizer)
            {
            }
        }
    }
    
  6. Von Bearbeiten - Menü > die Option IntelliSenseAbstrakte Klasse implementieren , wenn die Basisklasse aller abstrakten Methoden verfügt, die implementiert werden müssen.

  7. Andernfalls Positionieren Sie die Einfügemarke innerhalb der Klasse an, und geben Sie die Möglichkeit, ein überschrieben werden soll.

    Geben Sie beispielsweise öffentlichen Überschreibungen , um eine Liste aller Methoden anzuzeigen, die in dieser Klasse überschrieben werden können.

Siehe auch

Weitere Ressourcen

Wenn Sie einen Sprachdienst mithilfe von verwaltetem Paketframeworks implementieren