Sdílet prostřednictvím


Obarvení syntaxe ve vlastních editorech

Editory sady Visual Studio Environment SDK, včetně základního editoru, používají jazykové služby k identifikaci konkrétních syntaktických položek a jejich zobrazení s určenými barvami pro dané zobrazení dokumentu.

Požadavky na obarvení

Všechny editory, které implementují zvýrazňovač syntaxe jazykové služby, musí:

  1. Pomocí objektu, který implementuje IVsTextBuffer, můžete spravovat text, který se má obarvit, a objektu, který implementuje IVsTextView, poskytnout zobrazení dokumentu textu.

  2. Získejte rozhraní pro konkrétní službu jazyka dotazováním poskytovatele služeb VSPackage pomocí identifikátoru GUID služby jazyků.

  3. Zavolejte metodu objektu, který implementuje SetLanguageServiceID. Tato metoda přidruží jazykovou službu k IVsTextBuffer implementaci, kterou sada VSPackage používá ke správě textu, který má být obarvený.

Použití barevníku hlavního editoru služby jazyka

Když je jazyková služba s kolorizerem získána instancí základního editoru, analýza a vykreslování textu pomocí kolorizeru jazykové služby se provede automaticky bez nutnosti dalšího zásahu z vaší strany.

Integrované vývojové prostředí (IDE) transparentně:

  • Volá nástroj pro zabarvení podle potřeby k analýze textu při přidávání nebo úpravě v implementaci IVsTextBuffer.

  • Zajišťuje, že zobrazení poskytované zobrazením dokumentu poskytovaném IVsTextView implementací se aktualizuje a znovu nakreslí pomocí informací vrácených kolorizérem.

Použití barviče nehlavního editoru služeb jazyka

Instanční editory, které nejsou hlavní, mohou také používat službu syntaktického zvýraznění jazyka, ale musí explicitně načíst a použít zvýrazňovač služby a samy znovu nakreslit zobrazení dokumentu.

K tomu musí editor bez jádra:

  1. Získejte objekt zabarvení služby jazyka (který implementuje IVsColorizer a IVsColorizer2). Balíček VSPackage to provede voláním GetColorizer metody v rozhraní jazykové služby.

  2. Zavolejte metodu ColorizeLine pro žádost o obarvení určitého rozsahu textu.

    Metoda ColorizeLine vrátí matici hodnot, jedno pro každé písmeno v textu, které se obarvené. Identifikuje také rozsah textu jako určitý typ barevné položky, například komentář, klíčové slovo nebo datový typ.

  3. Použijte informace o obarvení vrácené ColorizeLine k překreslení a zobrazení jeho textu.

Poznámka:

VSPackage se může kromě použití colorizeru jazykové služby rozhodnout, že použije mechanismus pro barvení textu obecného použití sady Visual Studio Environment SDK. Další informace o tomto mechanismu naleznete v tématu Použití písem a barev.