![]() |
+7 (495) 229-0436 | ![]() |
shopadmin@itshop.ru | 119334, г. Москва, ул. Бардина, д. 4, корп. 3 | ![]() |
![]() |
![]() |
|
|
VS2010 - делаем свою подсветку синтаксиса09.03.2010 16:46
Поставил у себя VS2010 RC1. На винчестере семь гигов занимает, однако. Посмотрел как делаются аддоны и в частности раскраска синтаксиса. Читал я об этом ещё год назад, а тут в связи с выходом RC решил опробовать в деле. Для примера решил сделать подсветку синтаксиса для ассемблера Z80.
В Visual Studio 10 применяется новая модель расширений - весь код аддонов пишется исключительно на managed-коде, никаких COM. Это очень серьёзно облегчает жизнь, да и на общей стабильности системы сказывается очень положительно. Подсветка синтаксиса определяется классом, реализующим интерфейс IClassifier - этот класс задаёт логику разбора текста. Для использования классификатора нужен провайдер - реализующий IClassifierProvider и определяющий как наш классификатор будет использоваться. public IClassifier GetClassifier(ITextBuffer buffer) public IList<ClassificationSpan> GetClassificationSpans(SnapshotSpan span) ...
return result; }
При этом из GetClassificationSpans() конечно можно получить доступ к разбираемому тексту - через свойство span.Snapshot. В моём случае меня интересовал простой синтаксис, сводящийся к разбору одной строки. while (true) if (line.LineNumber == endLine.LineNumber) return result; Внутри ProcessLine остаётся идентифицировать отдельные фрагменты строки и добавить их в список, указав для каждого тип фрагмента. Например, вот так добавляется подсветка для комментария:
Типы фрагментов можно описать все сразу в одном классе: /// <summary> Классификатору может быть сопоставлен форматтер - класс, порождённый от ClassificationFormatDefinition и определяющий способ подсветки текста.
В общем-то, для такого небольшого результата - это практически всё что нужно знать. Ссылки по теме |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
О нас |
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.
На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям. Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе. В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.
|
119334, г. Москва, ул. Бардина, д. 4, корп. 3 +7 (495) 229-0436 shopadmin@itshop.ru |
|
© ООО "Interface Ltd." Продаем программное обеспечение с 1990 года |