Syntaxfarbe implementieren
Wenn der Sprachdienst Syntax farbauftrag bereitstellt, konvertiert der Parser eine Textzeile in ein Array färbbare Element entsprechend Tokentypen und gibt diesen färbbaren Elemente zurück. Der Parser muss Tokentypen zurückgeben, die einer Liste von färbbaren Elementen gehören. Visual Studio werden die einzelnen färbbare Element im Codefenster gemäß den Attributen an, die vom Objekt der farbigen Darstellung in den entsprechenden Tokentyp zugewiesen werden.
Visual Studio gibt keine Parser Oberfläche an, und Sie Implementierung abgeschlossen ist. Es wird eine standardmäßige Implementierung der Parser Projekt in Visual Studio-Sprachen-Paket bereitgestellt. Für verwalteten Code stellt das verwaltete Paketframework (MPF) vollständige Unterstützung für das Darfarbig stellen des Texts.
Schritte, gefolgt von einem Editor zum farbigen Anzeigen von Text
Im Editor wird die farbige Darstellung ab, indem er die GetColorizer-Methode auf dem IVsLanguageInfo-Objekts aufruft.
Im Editor wird die GetStateMaintenanceFlag-Methode auf, um zu bestimmen, ob die farbige Darstellung den Zustand der einzelnen Anforderungen außerhalb der farbigen Darstellung Zeile verwaltet werden sollen.
Wenn die farbige Darstellung des Zustands erfordert, außerhalb der farbigen Aussehen beibehalten werden, ruft der Editor die GetStartState-Methode auf, um den Zustand der ersten Zeile abzurufen.
Für jede Zeile im Puffer, ruft der Editor die ColorizeLine-Methode auf, die die folgenden Schritte aus:
Die Textzeile wird in einem Scanner übergeben, um Text in Token zu konvertieren. Jedes Token gibt den Tokentext und den Tokentyp an.
Der Tokentyp ist in einem Index in einer färbbare Elementliste konvertiert.
Die Tokens Informationen werden verwendet, um ein Array zu füllen so, dass jedes Element des Arrays zu einem Zeichen in der Zeile entspricht. Die Werte im Array gespeichert werden, werden die Indizes in der Liste färbbare Element.
Der Status am Ende der Zeile wird für jede Zeile zurückgegeben.
Wenn die farbige Darstellung erfordert den Zustand beibehalten werden muss, legt der Editor den Zustand für diese Zeile.
Der Editor stellt die Textzeile mit den Informationen, die von der ColorizeLine-Methode zurückgegeben werden. Gehen Sie dazu folgendermaßen vor:
Für jedes Zeichen in der Zeile, rufen Sie den färbbaren Elementindex ab.
Wenn Sie die standardmäßigen färbbaren Elemente verwenden, greifen Sie auf die Liste des Editors färbbare Element zu.
Andernfalls rufen Sie die GetColorableItem-Methode des Sprachdiensts aufgerufen, um ein Element färbbares.
Verwenden Sie die Informationen im färbbaren Element, um den Text in der Anzeige gerendert wird.
Farbige Darstellung des verwalteten Paketframeworks
Das verwaltete Paketframework (MPF) stellt alle Klassen, die erforderlich sind, um eine farbige Darstellung zu implementieren. Der Sprachdienst - Klasse sollte die LanguageService-Klasse erben und die erforderlichen Methoden implementiert. Sie müssen einen Scanner und einen Parser, indem Sie die IScanner-Schnittstelle implementieren, bieten und geben eine Instanz dieser Schnittstelle aus der GetScanner-Methode zurück (eine der Methoden, die in der LanguageService-Klasse implementiert werden müssen). Weitere Informationen finden Sie unter Syntax-tönen (Managed Paketframework).
Siehe auch
Aufgaben
Gewusst wie: Verwendungs-integrierte färbbare Element
Konzepte
Für benutzerdefinierte färbbare Elemente
Syntax-tönen (Managed Paketframework)