Реализация раскраску синтаксических конструкций
Если служба предоставляет колоризацию синтаксиса языка, средство синтаксического анализа преобразует линия цветного текста в массив элементов и возвращает типы токена, соответствующий этим цветного элементам. Средство синтаксического анализа должно возвращать типы токена, которые принадлежат к списку цветного элементов. Visual Studio отображает каждый цветного элемента в окне кода в соответствии с атрибутами присвоенным объектом colorizer в соответствующий тип токена.
Visual Studio не определяет интерфейс средства синтаксического анализа и реализация средства синтаксического анализа полностью до вас. Однако реализация по умолчанию средства синтаксического анализа содержащиеся в проекте пакета языка Visual Studio. Для управляемого кода, управляемые границы пакетов (MPF) обеспечивает полную поддержку для colorizing текста.
Шаги после редактором в текст Цветом
Редактор получает colorizer путем вызова GetColorizer метод IVsLanguageInfo объект.
Редактор вызывает GetStateMaintenanceFlag метод позволяет определить, нужно ли colorizer состояние каждой линии еще поддерживаются out colorizer.
Если colorizer требует состояние поддерживается вне colorizer, то редактор вызывает GetStartState метод, чтобы получить состояние первой линии.
Для каждой линии в буфере, редактор вызывает ColorizeLine метод, который выполняет следующие шаги:
Линия текст передается читателю для преобразования текста в токены. Каждый маркер определяет текст токена и тип токена.
Тип токена преобразован в индекс цветного список элементов.
Данные токена используются для заполнения массив таким образом, чтобы каждый элемент массива соответствует знаку в линии. Значения, хранящегося в массиве индексов цветного список элементов.
Состояние в конце линии возвращается для каждой линии.
Если colorizer требует состояние поддерживается, то редактор кэширует состояние для данной линии.
Редактор отображает линии текста с использованием сведений, возвращенное ColorizeLine метод. Для этого необходимо выполнить следующие действия:
Для каждого символа в линии, получите индекс цветного элемента.
Если используется по умолчанию для цветного элементы откройте список элементов редактора цветного.
В противном случае вызовите службу языка GetColorableItem метод получения цветного элемента.
Используйте сведения в цветного элемента для отображения текста в вывод.
Управляемый пакет .NET Framework Colorizer
Управляемые границы пакетов (MPF) предоставляют все классы, необходимые для реализации colorizer. Пользовательский класс должен наследовать службы языка LanguageService класс и реализующего необходимые методы. Необходимо указать средство чтения, и средство синтаксического анализа путем реализации IScanner интерфейс и возвращает экземпляр этого интерфейса из GetScanner метод (один из методов, которые необходимо реализовать в LanguageService класс). Дополнительные сведения см. в разделе раскраска синтаксиса (MPF).
См. также
Задачи
Практическое руководство. Использование встроенных Colorable элементов
Основные понятия
Пользовательские элементы Colorable