Freigeben über


Modell des Sprachdiensts

Ein Sprachdienst definiert die Elemente und Funktionen für eine bestimmte Sprache und wird verwendet, um den Editor mit spezifischen Informationen zu dieser Sprache bereitzustellen. Beispielsweise muss der Editor den Elementen und Schlüsselwörter der Sprache kennen, um Syntaxfarbe zu unterstützen.

Der Sprachdienst arbeitet eng mit dem Textpuffer, der vom Editor, und die Ansicht, die verwaltete den Editor enthält. Die Option Microsoft IntelliSense QuickInfo ist ein Beispiel für eine Funktion, die einen Sprachdienst bereitgestellt wird.

Ein minimaler Sprachdienst

Die grundlegendste Sprachdienst enthält die beiden folgenden Objekte:

  • Der Sprachdienst implementiert die IVsLanguageInfo-Schnittstelle. Ein Sprachdienst enthält Informationen zu der Sprache, einschließlich seines Namens, Dateinamenerweiterungen, Code und fenster-manager farbige Darstellung.

  • Die farbige Darstellung implementiert die IVsColorizer-Schnittstelle.

Die folgende konzeptionelle Zeichnung zeigt ein Modell eines grundlegenden Sprachdiensts an.

Grundlegendes Sprachdienst Modells

Grafik zum Sprachdienstmodell

Die Dokumentfenster hostet die Ansicht des Editors Dokumente in diesem Fall der Visual Studio Kern des Editors. Die Dokumente und der Textpuffer werden durch den Besitz Editor. Diese Objekte funktionieren mit Visual Studio durch ein spezialisiertes Dokumentfenster, das ein Codefensteraufgerufen wird. Das Codefenster wird in einem IVsWindowFrame-Objekt, das von der IDE erstellt und verwaltet wird.

Wenn eine Datei mit einer angegebenen Erweiterung geladen wird, sucht der Editor den Sprachdienst, der mit dieser Erweiterung zugeordnet ist, und übergibt ihr das Codefenster, indem er die GetCodeWindowManager-Methode aufgerufen wird. Der Sprachdienst gibt einen Code fenster-managerzurück, der die IVsCodeWindowManager-Schnittstelle implementiert.

Die folgende Tabelle enthält eine Übersicht über die Objekte im Modell.

Komponente

Objekt

Funktion

Textpuffer

VsTextBuffer

Ein Unicode-Lese-/Schreibzugriff-Textstream. Es ist möglich, Text für andere Codierungen verwendet werden soll.

Codefenster

VsCodeWindow

Ein Dokumentfenster mit einem oder mehreren Textansichten enthält. Wenn der Modus Visual Studio MDI (Multiple Document Interface) ist, wird das Codefenster ein untergeordnetes MDI-Element.

Textansicht

VsTextView

Ein Fenster, in dem der Benutzer navigiert und Text anzeigen können, indem die Tastatur als auch die Maus verwenden. Eine Textansicht als Editor für den Benutzer angezeigt wird. Sie können Textansichten in gewöhnlichen Editorfenster, in das Fenster Ausgabe und das Direktfenster verwenden. Außerdem können Sie einem oder mehreren Textansichten in einem Fenster Code konfigurieren.

Text Manager

Verwaltet durch den SVsTextManager Dienst, aus dem Sie ein Zeiger abgerufen IVsTextManager

Eine Komponente, die die allgemeine Informationen beibehält, die von allen Komponenten gemeinsam genutzt werden, die zuvor beschrieben werden.

Sprachdienst

Implementierungen abhängiges Element. IVsLanguageInfoimplementiert

Ein Objekt, das den Editor mit sprachspezifischer Informationen wie Anweisungsvervollständigung und erhält, Syntax-Hervorhebung stützen Übereinstimmungen ab.

Siehe auch

Konzepte

Dokumenten-Bezugspunkte und benutzerdefinierte Editoren in Dokumenten-Ansicht