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:
Klicken Sie unter Von Visual Basic-Erweiterbarkeit. Die Standardsprache des Projekts ist Visual Basic.
Die C#-Erweiterbarkeit. Die Standardsprache ist C# des Projekts.
Verwenden anderer Projekttyp-Erweiterbarkeit. Die Standardsprache des Projekts ist C++.
Erstellen Sie ein VSPackage
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“.
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.
Wählen Sie Visual C# als die Sprache und die Option, eine neue Schlüsseldatei zu generieren. Klicken Sie auf Next.
Geben Sie die entsprechenden Unternehmens- und Paketinformationen. Klicken Sie auf Next.
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.
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
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf MyLanguagePackage-Projekt auswählen und auf dem Verweis hinzufügen.
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.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf VSPackage-Projekt auswählen und auf dem Hinzufügen - > Klasse.
Stellen Sie sicher, dass Klasse in der Vorlagenliste ausgewählt ist.
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.
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;
Ändern Sie die MyLanguageService-Klasse, die aus der LanguageService-Klasse abzuleiten:
Friend Class MyLanguageService Inherits LanguageService
class MyLanguageService : LanguageService
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.
Implementieren Sie die abstrakten Methoden, wie in Wenn Sie einen Sprachdienst (Managed Paketframework implementieren)beschrieben.
Registrieren Sie den Sprachdienst
Ö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;
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
Implementieren Sie einen Parser und einen Scanner für die Sprache, die in Sprachendienst-Parser und Scanner (Managed Paketframework)beschrieben.
Wie Sie implementieren, wird der Parser und der Scanner vollständig ist und Sie auf eine Stelle außerhalb des Rahmens dieses Themas.
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
Klicken Sie mit der rechten Maustaste auf den im Projektmappen-ExplorerVSPackage-Projekt und > - Hinzufügen Sie unter Klasse.
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.
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;
Ändern Sie die Klasse so, dass sie von der gewünschten MPF-Klasse zu berechnen.
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) { } } }
Von Bearbeiten - Menü > die Option IntelliSenseAbstrakte Klasse implementieren , wenn die Basisklasse aller abstrakten Methoden verfügt, die implementiert werden müssen.
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