Colorizer Class



This API is not CLS-compliant.

This class implements the IVsColorizer interface and is used to support syntax highlighting in an editor.

public class Colorizer : IDisposable, Microsoft.VisualStudio.TextManager.Interop.IVsColorizer


The managed package framework (MPF) version of this class uses an IScanner object to handle all parsing tasks. The IScanner object communicates color information through the TokenInfo structure. The Colorizer class also helps the IScanner object track state by passing around a state variable the parser maintains.

This class handles colorization on a line by line basis.

Notes to Inheritors

The MPF version of this class performs all the work necessary to colorize a line of code by interacting with the IScanner object. If you find you need additional functionality not supported in the existing Colorizer class, you must derive a class from the Colorizer class and return an instance of your class from GetColorizer(IVsTextLines). The default implementation of GetColorizer(IVsTextLines) instantiates the MPF version of Colorizer, passing to the Colorizer constructor an instance of the IScanner object obtained from GetScanner(IVsTextLines).

Notes to Callers

The colorizer object returned from GetColorizer(IVsTextLines) is stored in the Source object when the Source object is created. The Source object handles all interactions with the colorizer so there is no need for any outside involvement with the colorizer. The methods of this class are documented in case you need to implement your own version of the Source class.


Colorizer(LanguageService, IVsTextLines, IScanner)

Initializes the Colorizer class.



Returns the scanner being used.



Called when the colorizer is disposed of.

ColorizeLine(Int32, Int32, IntPtr, Int32, UInt32[])

Obtains color and font attribute information for each character in the specified line of text.


Disposes the object.


Called when the object is about to be destroyed.

GetColorInfo(String, Int32, Int32)

Returns the parsing state at the end of the line without returning any colorization information.

GetLineInfo(IVsTextLines, Int32, IVsTextColorState)

Returns color information about the specified line.


Returns the initial parsing state.

GetStateAtEndOfLine(Int32, Int32, IntPtr, Int32)

Returns the parsing state at the end of the specified line.


Called to determine if the colorizer requires per line state management.


Called to resume use of the colorizer.


Called to suspend use of the colorizer.

Extension Methods

FindAncestor<TElementType>(TElementType, Func<TElementType,TElementType>, Func<TElementType,Boolean>)
FindAncestor<TAncestorType,TElementType>(TElementType, Func<TElementType,TElementType>)

Microsoft internal use only.

FindAncestorOrSelf<TElementType>(TElementType, Func<TElementType,TElementType>, Func<TElementType,Boolean>)
FindAncestorOrSelf<TAncestorType,TElementType>(TElementType, Func<TElementType,TElementType>)
IsAncestorOf<TElementType>(TElementType, TElementType, Func<TElementType,TElementType>)

Microsoft internal use only.

Applies to