Freigeben über


Prüfliste: Erstellen eines Sprachdienst

Die folgende Prüfliste werden die grundlegenden Schritte beschrieben, die Reihenfolge einlassen müssen, einen Sprachdienst für den Visual Studio Kern des Editors zu erstellen. Um den Sprachdienst in Visual Studiozu integrieren, müssen Sie einen Debugbuild Ausdrucksauswertung erstellen. Weitere Informationen finden Sie unter Schreiben eines Common Language Runtime-Ausdrucksauswerter in Visual Studio-Debugger-Erweiterbarkeit.

Schritte zum Erstellen eines Sprachdiensts

  1. Implementieren Sie die IVsPackage-Schnittstelle.

    • In einem VSPackage implementieren Sie die IServiceProvider-Schnittstelle, um den Sprachdienst bereit.

    • Führen Sie den Sprachdienst für die integrierte Entwicklungsumgebung (IDE) in der SetSite Implementierung.

  2. Implementieren Sie die IVsLanguageInfo-Schnittstelle in der wichtigsten Sprachdienst Klasse.

    Die IVsLanguageInfo-Schnittstelle ist der Ausgangspunkt der Interaktion zwischen dem zentralen Editor und dem angegebenen Sprachdienst.

Optionale Funktionen

Die folgenden Funktionen sind optional und können in beliebiger Reihenfolge implementiert werden. Diese Funktionen erweitern die Funktionalität des Sprachdiensts.

  • Syntaxfarbe

    Implementieren Sie die IVsColorizer-Schnittstelle. Die Implementierung dieser Schnittstelle, wenn der Parser die entsprechenden Informationen zu Farbinformationen zurückgeben.

    Die GetColorizer-Methode gibt die IVsColorizer-Schnittstelle zurück. Eine separate Instanz der farbigen Darstellung wird für jeden Textpuffer erstellt. Daher sollten Sie die IVsColorizer separat Schnittstelle implementieren. Weitere Informationen finden Sie unter Syntaxfarbe.

  • Codefenster

    Implementieren Sie die IVsCodeWindowManager-Schnittstelle, um den Sprachdienst den Empfang von Benachrichtigungen, wenn ein neues Codefenster erstellt wird.

    Die GetCodeWindowManager-Methode gibt die IVsCodeWindowManager-Schnittstelle zurück. Der Sprachdienst kann ein spezielles Benutzeroberfläche im Codefenster in AddAdornmentsdann auf Hinzufügen. Der Sprachdienst kann durch eine spezielle Verarbeitung, beispielsweise das Hinzufügen eines filters der Text im OnNewViewauch tun.

  • Filter der Text

    Um IntelliSense-Anweisungsvervollständigung in einem Sprachdienst bereitzustellen, müssen Sie einige Befehle abfangen, die die Textansicht Andernfalls behandelt werden würde. Um diese Befehle abzufangen, führen Sie die folgenden Schritte aus:

    • Implementieren Sie IOleCommandTarget , um eine Verbindung mit der Texteditorbefehle Befehlskette teilzunehmen und zu behandeln.

    • Rufen Sie die AddCommandFilter-Methode auf, und übergeben Sie die IOleCommandTarget Implementierung.

    • Rufen Sie die RemoveCommandFilter-Methode auf, wenn Sie sich in der Ansicht trennen, sodass diese Befehle nicht mehr Sie übergeben werden.

    Befehle, die behandelt werden müssen, hängt von den Diensten ab, die bereitgestellt werden. Weitere Informationen finden Sie unter Wichtige Befehle für Sprachendienst-Filter.

    Hinweis

    Die IVsTextViewFilter-Schnittstelle muss auf dasselbe Objekt wie die IOleCommandTarget-Schnittstelle implementiert werden.

  • Anweisungsvervollständigung

    Implementieren Sie die IVsCompletionSet-Schnittstelle.

    Sichern Sie den Befehl Anweisungsvervollständigungs (d. h. COMPLETEWORD) und rufen Sie die UpdateCompletionStatus-Methode in der IVsTextView-Schnittstelle an, und die IVsCompletionSet-Schnittstelle übergeben. Weitere Informationen finden Sie unter Anweisungsvervollständigung.

  • Methodentipps

    Implementieren Sie die IVsMethodData-Schnittstelle, um Daten für das Fenster tipp Methoden bereitzustellen.

    Installieren Sie den Filter, um Befehle der Text entsprechend zu behandeln, damit Sie wissen, wann ein bezugspunkt-Tipp Methoden im Fenster anzeigt. Weitere Informationen finden Sie unter Parameterinformationens-QuickInfo.

  • marker Fehler

    Implementieren Sie die IVsTextMarkerClient-Schnittstelle.

    Erstellen Sie die Fehler IVsTextMarkerClient marker Objekte, die die Schnittstelle implementieren und die CreateLineMarker-Methode aufrufen und die IVsTextMarkerClient-Schnittstelle des Fehlers marker Objekts übergeben.

    In der Regel verwalteten jeder Fehler marker ein Element im Fenster Aufgabenliste.

  • Aufgabenliste Elemente

    Implementieren Sie eine Aufgabenelement Klasse, die die IVsTaskItem-Schnittstelle bereitstellt.

    Implementieren Sie eine Klasse, die die Hersteller Aufgaben IVsTaskProvider-Schnittstelle und die IVsTaskProvider2-Schnittstelle bereitstellt.

    Implementieren Sie eine Klasse, die die enumerator Aufgaben IVsEnumTaskItems-Schnittstelle bereitstellt.

    Registrieren Sie den Hersteller der Aufgaben mit der RegisterTaskProvider-Methode der Aufgabenliste.

    Rufen Sie die IVsTaskList-Schnittstelle, indem sie den Dienstanbieter GUID des Sprachdiensts mit dem Dienst SVsTaskListaufruft.

    Erstellen Sie Aufgabenelement Objekte und rufen Sie die RefreshTasks-Methode in der IVsTaskList-Schnittstelle an, wenn neue oder aktualisierte Aufgaben vorhanden sind.

  • Kommentartaskelemente

    Verwenden Sie die IVsCommentTaskInfo-Schnittstelle und die IVsEnumCommentTaskTokens-Schnittstelle, um die Kommentaraufgaben token.

    Rufen Sie eine IVsCommentTaskInfo-Schnittstelle aus dem SVsTaskList Dienst.

    Rufen Sie die IVsEnumCommentTaskTokens-Schnittstelle aus der EnumTokens-Methode.

    Implementieren Sie die IVsTaskListEvents-Schnittstelle, um auf Änderungen in der Liste Tokens zu überwachen.

  • Gliederung

    Es gibt mehrere Möglichkeiten zum Sichern von Gliederung. Beispielsweise können Sie den Befehl Nur Definitionen anzeigen Unterstützung von einem Editor gesteuert CLIENT-gesteuerte Bereiche oder Bereiche Kontur Unterstützung zur Verfügung stellen. Weitere Informationen finden Sie unter Gewusst wie: Gewähren Sie erweiterte Gliederungs-Unterstützung.

  • Registrierung der Sprachdienst

    Weitere Informationen darüber, wie Sie einen Sprachdienst finden Sie unter Wenn Sie einen Sprachdienst registrieren und Laden von VSPackagesregistriert.

  • Kontextbezogene Hilfe

    Bereitstellen von Kontext in den Editor mit einer der folgenden Methoden zur Verfügung:

Stellen Sie alle Benutzerkontext aus dem Implementieren der IVsLanguageContextProvider-Schnittstelle bereit.

Siehe auch

Weitere Ressourcen

Entwickeln eines Sprachdienst

Schreiben eines Common Language Runtime-Ausdrucksauswerter