Хорошо, прежде чем я начну, я понимаю, что есть много документации по этому вопросу, но я до сих пор не смог заставить даже базовую колоризацию работать на VS2010.
Моя цель - просто добраться до точки, где я могу открыть документ, и все окрашено в красный цвет, отсюда я могу реализовать соответствующую логику синтаксического анализа.
Вот что я пробовал / нашел:
1) Загрузил все соответствующие SDK и т. П. Найден пример ook (http://code.msdn.microsoft.com/ookLanguage) - не скомпилирован, не сработал.
2) Почти ничего не зная о MEF, прочитайте «Внедрение языковой службы с использованием инфраструктуры управляемых пакетов» - http://msdn.microsoft.com/en-us/library/bb166533(v=VS.100).aspx
Это было в значительной степени копирование и вставка всех основных вещей здесь, а также обновление некоторых ссылок, которые были устаревшими с образцом, см. http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/a310fe67-afd2-4592-b295-3fc86fec7996
Теперь я дошел до того, что при запуске пакета MEF, по-видимому, правильно подключился (я знаю это, потому что при открытом отладчике я вижу, что пакеты инициализируются и методы FDoIdle подвергаются ударам).
Когда я открываю файл с расширением, которое я зарегистрировал с помощью ProvideLanguageExtensionAttribute, все умирает, как будто в бесконечном цикле, но все же символы отладки не попадают (хотя они загружены).
Глядя на пример ook и примеры MEF, они кажутся совершенно разными подходами к одной и той же проблеме. В примере ook есть понятия контроллеров Clasification и Completion, которые не упомянуты в примере MEF. Кроме того, кажется, что они не создают службы Package или Language, поэтому я понятия не имею, как она должна работать?
С примером MEF я предполагаю, что мне нужно подключиться к IScanner.ScanTokenAndProvideInfoAboutIt, чтобы обеспечить подсветку синтаксиса? Что было бы хорошо, если бы я мог ударить этот метод.
Так что мой первый вопрос, я думаю, какой подход я должен выбрать здесь? Или они оба как-то связаны?
Мой второй вопрос: где я могу найти базовый полностью работающий проект, который реализует стандартную подсветку синтаксиса bog и intellisense или VS2010?
В-третьих, в примере MEF, когда я создавал пакет, для меня было создано несколько тестовых проектов. Похоже, что интеграционные тесты запускают тестовую установку VS2010 как-то, но тест не пройден. Было бы хорошо написать мой сервис с тестами, но я не знаю, что / как я могу протестировать каждое взаимодействие, поэтому любые ссылки на тестирование языковых сервисов будут полезны.
Наконец, пожалуйста, назовите любые ссылки на ресурсы / книги, которые мне могут пригодиться.
Ура, Крис.
N.B. Извините, я понимаю, что это частично напыщенная речь, но я никогда не был так смущен.