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 |
---|---|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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