Я выполнил шаги, перечисленные в пошаговом руководстве (http://msdn.microsoft.com/en-us/library/bb166360.aspx), для реализации и регистрации LanguageService, и я просто не могу заставить его работать.
Мой пакет загружается правильно, я могу добавить функционирующие пункты меню и страницы параметров, но не могу открыть файлы, зарегистрированные в моей службе. Когда я присоединяю отладчик, я вижу, что мой VSPackage создается, загружается и дважды вызывает его метод FDoIdle. После этого экспериментальный сеанс Visual Studio уходит в сорняки и кажется застрявшим в бесконечном цикле. Если я пытаюсь сохранить файл .txt в качестве моего типа файла, файл сохраняется правильно, но не загружается в Visual Studio, и я получаю исключение Object null.
Я вижу, что моя проблема упоминается в этом вопросе: Colourizers Visual Studio 2010, intellisense и остальное. С чего начать!
Разрешение, по-видимому, заключается в том, чтобы не использовать среду управляемых пакетов, а вместо этого использовать среду управления расширяемостью. Это здорово и все, но мне бы очень хотелось узнать, что я делаю не так с моей реализацией MPF LanguageService.
Кто-нибудь успешно создал LanguageService с использованием MPF? Кто-нибудь может направить меня к рабочему примеру или к прохождению?
ПРОБЛЕМА РЕШЕНА!:
Я провел дальнейшую отладку и заметил, что экспериментальный экземпляр Visual Studio застрял, вызывая следующее:
Microsoft.VisualStudio.Editor.Implementation.VsFontsAndColorsInformation.TryGetIndexForNativeItem (имя строки, IVsColorTable colorTable, Int32 & colorTableIndex)
По догадке я указал для параметра RequestStockColors значение true в ProvideLanguageServiceAttribute, и теперь я могу открыть свой тип файла. Мой простой сканер даже имеет рабочую раскраску синтаксиса!