Freigeben über


Sprachendienst-Schnittstellen

Für jede bestimmte Programmiersprache kann es nur eine Instanz des Sprachdiensts gleichzeitig vorhanden sein. Allerdings kann ein einsprachiger Dienst mehr als einen Editor dienen.

Visual Studio ordnet einen Sprachdienst keinem bestimmten Editor. Wenn Sie einen Sprachen dienstvorgang benötigen, müssen Sie den geeigneten Editor als Parameter angeben.

Allgemeine Sprachendiensten zugeordnete Schnittstellen

Im Editor wird der Sprachdienst ab, indem er QueryService auf entsprechenden VSPackage aufruft. Die Dienst ID (SID) in diesem Aufruf wird der Sprachdienst, die angefordert wird.

Sie können die wichtigsten Schnittstellen Sprachdienst auf einer beliebigen Anzahl von anderen Klassen implementiert werden. Es ist ein allgemeiner Ansatz, die folgenden Schnittstellen in einer einzelnen Klasse zu implementieren:

Die IVsLanguageInfo-Schnittstelle muss auf allen Sprachendiensten implementiert werden. Es stellt Informationen über den Sprachdienst, z. B. den lokalisierten Namen der Sprache, die Dateinamenerweiterungen, die mit dem Sprachdienst zugeordnet werden und wie eine farbige Darstellung veranschaulicht.

Weitere Sprachendienst-Schnittstellen

Andere Schnittstellen können mit dem Sprachdienst bereitgestellt werden. Visual Studio erfordert eine separate Instanz dieser Schnittstellen für jede Instanz des Textpuffers. Daher sollten Sie jede dieser Schnittstellen on Its Own Objekt implementieren. In der folgenden Tabelle werden die Schnittstellen, die eine Instanz pro Textpuffer Objektinstanz erforderlich sind.

Schnittstelle

Beschreibung

IVsCodeWindowManager

Verwaltet Codefenster zusatzelemente, wie die Dropdownliste Leiste. Sie können diese Schnittstelle abrufen, indem Sie die GetCodeWindowManager-Methode verwenden. Es gibt ein IVsCodeWindowManager pro Codefenster.

IVsColorizer

Farbig stellt Schlüsselwörter und Trennzeichen dar. Sie können diese Schnittstelle abrufen, indem Sie die GetColorizer-Methode verwenden. IVsColorizer wird an der Farben Zeit bezeichnet. Vermeiden Sie Berechnung-intensive Arbeit innerhalb IVsColorizer kann die Leistung oder leiden.

IVsMethodData

Stellt IntelliSense-Parameter die QuickInfo bereit. Wenn der Sprachdienst erkennt, wird ein Zeichen, das angibt, dass Daten Methoden, z. B. eine öffnende Klammer angezeigt werden sollen, es, die SetMethodData-Methode auf, um die Textansicht zu benachrichtigen, dass der Sprachdienst bereit ist, eine Parameterinformationens-QuickInfo anzuzeigen. Die Aufrufe der Textansicht dann wieder in den Sprachdienst mithilfe der Methoden der IVsMethodData-Schnittstelle, um die erforderlichen Informationen zu erhalten, um die QuickInfo anzuzeigen.

IVsCompletionSet

Stellt IntelliSense-Anweisungsvervollständigung bereit. Wenn der Sprachdienst bereit ist, eine Vervollständigungsliste anzuzeigen, ruft sie die UpdateCompletionStatus-Methode für die Textansicht an. Die Aufrufe der Textansicht dann wieder in den Sprachdienst mithilfe von Methoden für den IVsCompletionSet-Objekt.

IVsTextViewFilter

Ermöglicht das Ändern der Textansicht mithilfe des Befehls handlers. Die Klasse, in der die IVsTextViewFilter-Schnittstelle implementieren, muss auch die IOleCommandTarget-Schnittstelle implementieren. Die Textansicht ruft das IVsTextViewFilter-Objekt ab, indem er das IOleCommandTarget-Objekt abgefragt wird, das in die AddCommandFilter-Methode übergeben wird. Es sollte ein IVsTextViewFilter-Objekt für jede Sicht sein.

IOleCommandTarget

Fängt diese Befehle der Benutzer auf die im Codefenster ab. Überwachen Sie die Ausgabe der IOleCommandTarget Informationen zum Schließen, um eine benutzerdefinierte Implementierung und Änderung der Ansicht bereitzustellen

Um das IOleCommandTarget-Objekt der Textansicht übergeben, Aufrufs AddCommandFilter.

Siehe auch

Konzepte

Prüfliste: Erstellen eines Sprachdienst

Weitere Ressourcen

Entwickeln eines Sprachdienst