раскраска синтаксических конструкций
Visual Studio использует службу расцветки для определения элементов языка, и отобразить их с указанными цветами в редакторе.
Модель Colorizer
Служба языков реализует IVsColorizer интерфейс, который затем используется редакторами. Эта реализация отдельный объект от языковой службы, как показано на следующей иллюстрации.
Простая модель colorizer
Примечание
Служба расцветки отдельно от общего синтаксиса Visual Studio механизм colorizing текста.Дополнительные сведения о генералитете SDK для Visual Studio colorizing механизма, поддерживающий см. в разделе Шрифты.
Кроме colorizer служба языка может предоставить пользовательские цветного элементы, используемые редактором путем объявления этого он содержит пользовательские элементы цветного. Это можно сделать путем реализации IVsProvideColorableItems интерфейс для одного и того же объекта, реализующего IVsLanguageInfo интерфейс. Он возвращает количество пользовательских цветного элементов, когда редактор вызывает GetColorableItem метод и возвращают отдельные пользовательский цветного элемента, когда редактор вызывает GetItemCount метод.
GetColorableItem метод возвращает объект, который реализует IVsColorableItem интерфейс. Если языка 24 бита или значения высокого цвета, он должен реализовать IVsHiColorItem интерфейс на одном объекте как IVsColorableItem интерфейс.
Использует службу языка Colorizer как VSPackage
VSPackage должно получить подходящую службу языка, которая требует служба языка VSPackage выполняет следующие действия:
Используйте реализация объекта IVsTextBuffer интерфейс для получения текста colorized.
Текст обычно отображается с использованием объект, реализующий IVsTextView интерфейс.
Получает службу языка, запрашивая поставщиков услуг VSPackage для GUID языковой службы. Языковой службы задаются в реестре расширением файла.
Свяжите языковую службу с IVsTextBuffer путем вызова его SetLanguageServiceID метод.
VSPackage может обращаться и использовать объект colorizer следующим образом:
Примечание
VSPackages, которое использует редактор не должно получить базовые объекты colorizer языковой службы явным образом.После того как экземпляр ядра возвращает соответствующую службу редактора языка, он выполняет все задачи колоризации показанные здесь.
Получите объект colorizer языковой службы, который реализует GetColorizer и IVsLanguageInfo интерфейсы, путем вызова T:Microsoft.VisualStudio.TextManager.Interop.IVsColorizerметод в службе языка IVsColorizer2 объект.
Вызовите ColorizeLine метод, чтобы получить данные colorizer для указанного диапазона текста.
ColorizeLine возвращает массив значений, по одному для каждого символа в colorized объеме текста. Значения индексов цветного список элементов или цветного элемента по умолчанию список основных поддерживаемый редактором или пользовательский список цветного элемента, поддерживаемый службой языку самой.
Используйте колоризации возвращаемые данные ColorizeLine метод для отображения выделенного текста.
Примечание
В дополнение к использованию colorizer языковой службы, VSPackage также может использовать общего назначения Visual Studio механизм расцветки текста.Дополнительные сведения об этом механизме см. в разделе Шрифты.
Содержание
Реализация раскраску синтаксических конструкций
Содержит сведения о том, как редактор получает доступ к расцветка синтаксиса службы языка и языка служба должна реализовывать для поддержки расцветку синтаксиса.Практическое руководство. Использование встроенных Colorable элементов
Демонстрирует, как использовать встроенные элементы из цветного языковой службы.Пользовательские элементы Colorable
Описывает, как реализовать пользовательские цветного элементы.