Dela via


Syntaxfärgning i anpassade redigerare

Visual Studio Environment SDK-redigerare, inklusive huvudredigeraren, använder språktjänster för att identifiera specifika syntaktiska objekt och visa dem med angivna färger för en viss dokumentvy.

Krav för färgsättning

Alla redigerare som implementerar en språktjänsts färgläggning måste:

  1. Använd ett objekt som implementerar IVsTextBuffer för att hantera den text som ska färgläggas och ett objekt som implementeras IVsTextView för att tillhandahålla en dokumentvy av texten.

  2. Skaffa ett gränssnitt till en viss språktjänst genom att fråga VSPackages tjänstleverantör med hjälp av språktjänstens identifierande GUID.

  3. Anropa metoden för SetLanguageServiceID objektet som implementerar IVsTextBuffer. Den här metoden associerar språktjänsten med den IVsTextBuffer implementering som VSPackage använder för att hantera texten som ska färgläggas.

Kärnredigerarens användning av en språktjänsts färgläggare

När en språktjänst med en färgkodare erhålls av en instans av kärnredigeraren, sker parsningen och återgivningen av text av en språktjänsts färgkodare automatiskt utan att kräva några ytterligare åtgärder från din sida.

IDE:et transparent

  • Anropar färgläggaren efter behov för att parsa och analysera text när den läggs till eller ändras i implementeringen av IVsTextBuffer.

  • Säkerställer att den visning som tillhandahålls av dokumentvyn som tillhandahålls av implementeringen IVsTextView uppdateras och ommålas med hjälp av den information som returneras av färgläggaren.

Icke-kärnig redigerare Användning av en språktjänsts färgläggning

Icke-kärnredigerare kan också använda en språktjänsts syntaxfärgningstjänst, men de måste uttryckligen hämta och tillämpa tjänstens färgsättning och måla om sina dokumentvyer själva.

För att göra detta måste en icke-kärnredigerare:

  1. Hämta en språktjänsts colorizer-objekt (som implementerar IVsColorizer och IVsColorizer2). VSPackage gör detta genom att anropa GetColorizer metoden i språktjänstens gränssnitt.

  2. ColorizeLine Anropa metoden för att begära att ett visst textintervall ska färgas.

    Metoden ColorizeLine returnerar en matris med värden, en för varje bokstav i textintervallet som färgas. Den identifierar också textintervallet som en viss typ av färgbart objekt, till exempel en kommentar, ett nyckelord eller en datatyp.

  3. Använd den färgläggningsinformation som returneras av ColorizeLine för att måla om och visa texten.

Anmärkning

Förutom att använda en språktjänsts färgläggning kan en VSPackage välja att använda textfärgningsmekanismen för Visual Studio Environment SDK för generell användning. Mer information om den här mekanismen finns i Använda teckensnitt och färger.