Syntaxfarbe
Visual Studio verwendet einen Farbton für, um Elemente der Sprache zu identifizieren und mit den angegebenen Farben in einem Editor anzuzeigen.
Modell der farbigen Darstellung
Der Sprachdienst implementiert die IVsColorizer-Schnittstelle, die dann von Editoren verwendet wird. Diese Implementierung ist ein separates Objekt aus dem Sprachdienst, wie in der folgenden Abbildung gezeigt.
Einfaches Modell der farbigen Darstellung
Hinweis
Der Syntaxfarben ist getrennt von dem für Visual Studio Darfarbig allgemeinen Mechanismus zum Erstellen des Texts.Weitere Informationen zu den allgemeinen Mechanismus Visual Studio SDK , der das Darfarbig unterstützt werden, finden Sie unter Schriftarten.
Neben dem farbigen Darstellung kann der Sprachdienst benutzerdefinierte färbbare Elemente enthalten, die vom Editor verwendet werden, indem sie benutzerdefinierte färbbare Elemente dieser Beschreibung ein, ankündigt. Dazu können Sie die IVsProvideColorableItems-Schnittstelle für dasselbe Objekt implementieren, das die IVsLanguageInfo-Schnittstelle implementiert. Sie gibt die Anzahl der benutzerdefinierten färbbaren Elementen zurück, wenn der Editor die GetItemCount-Methode aufruft und gibt ein einzelnes benutzerdefiniertes färbbares Element zurück, wenn der Editor die GetColorableItem-Methode aufgerufen wird.
Die GetColorableItem-Methode gibt ein Objekt zurück, das die IVsColorableItem-Schnittstelle implementiert. Wenn der Sprachdienst 24-Bit oder hohe Farbwerte unterstützt, muss er die IVsHiColorItem-Schnittstelle für dasselbe Objekt wie die IVsColorableItem-Schnittstelle implementieren.
Wie ein VSPackage über eine Sprachendienst-farbige Darstellung verwendet
VSPackage muss den entsprechenden Sprachdienst abrufen, der den Sprachdienst VSPackage für folgende Aufgaben:
Verwenden Sie ein Objekt, das die IVsTextBuffer-Schnittstelle implementiert, um die getönt werden soll, Text abgerufen.
Text wird in der Regel mithilfe eines Objekts angezeigt, das die IVsTextView-Schnittstelle implementiert.
Rufen Sie den Sprachdienst, indem Sie den Dienstanbieter VSPackages für den Sprachdienst GUIDs abfragen. Sprachendienste werden in der Registrierung durch Dateierweiterung identifiziert.
Ordnen Sie den Sprachdienst mit IVsTextBuffer zu, indem Sie seine SetLanguageServiceID-Methode aufrufen.
Jetzt kann ein VSPackage abrufen und das Objekt der farbigen Darstellung verwenden wie folgt:
Hinweis
VSPackages, die den Kern des Editors verwenden, müssen nicht explizit erhalten Objekte der farbigen Darstellung des Sprachdiensts.Sobald eine Instanz des zentralen editors ein entsprechender Sprachdienst erhält, listet sie alle Farbauftrag Aufgaben aus, die hier angezeigt werden.
Rufen Sie das Objekt der farbigen Darstellung des Sprachdiensts, das T:Microsoft.VisualStudio.TextManager.Interop.IVsColorizerimplementiert, und IVsColorizer2-Schnittstellen, indem sie die GetColorizer-Methode auf dem IVsLanguageInfo-Objekt des Sprachdiensts aufrufen.
Rufen Sie die Methode an ColorizeLine zum Abrufen der Informationen der farbigen Darstellung für einen bestimmten Textabschnitt.
ColorizeLine gibt ein Array von Werten, einen für jedes Zeichen im Textabschnitt zurück, der getönt werden soll. Die Werte sind Indizes in eine Elementliste färbbare, die entweder die standardmäßige färbbare Elementliste darstellt, die vom Kern des Editors übernommen werden oder eine benutzerdefinierte färbbare Elementliste, die vom Sprachdienst selbst ausgeführt wird.
Verwenden Sie die Farbauftrag Informationen, die von der ColorizeLine-Methode zurückgegeben werden, um den ausgewählten Text anzuzeigen.
Hinweis
Neben der Verwendung einer Sprachdienst farbigen kann ein VSPackage die allgemeine Darstellung Visual Studio Text auch Mechanismus zur farbton verwenden.Weitere Informationen zu diesem Verfahren finden Sie unter Schriftarten.
In diesem Abschnitt
Syntaxfarbe implementieren
Erläutert, wie ein Editor eine Syntaxfarbe des Sprachdiensts zugreift und was der Sprachdienst implementieren muss, um Syntaxfarbe zu unterstützen.Gewusst wie: Verwendungs-integrierte färbbare Element
Veranschaulicht, wie eine integrierte färbbare Elemente aus dem Sprachdienst verwendet.Für benutzerdefinierte färbbare Elemente
Erläutert, wie benutzerdefinierte färbbare Elemente implementiert.