Реализация языковой службы с использованием инфраструктуры управляемых пакетов - PullRequest
3 голосов
/ 06 марта 2011

Я выполнил шаги, перечисленные в пошаговом руководстве (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, и теперь я могу открыть свой тип файла. Мой простой сканер даже имеет рабочую раскраску синтаксиса!

1 Ответ

6 голосов
/ 04 мая 2011

ПРОБЛЕМА РЕШЕНА!:

Я провел дальнейшую отладку и заметил, что экспериментальный экземпляр Visual Studio застрял, вызывая следующее:

Microsoft.VisualStudio.Editor.Implementation.VsFontsAndColorsInformation.TryGetIndexForNativeItem (Имя строки, IVsColorTable colorTable, Int32 & colorTableIndex)

На догадке я указал для параметра RequestStockColors значение true в ProvideLanguageServiceAttribute, и теперь я могу открыть свой тип файла.Мой простой сканер даже имеет рабочую раскраску синтаксиса!

...