使用托管包框架实现语言服务

我已经按照步骤( http://msdn.microsoft.com/en-us/library/bb166360.aspx )中列出的步骤来实现和注册LanguageService,但我根本无法使用它。

我的包正确加载,我可以添加function菜单项和选项页,但我无法打开注册到我的服务的文件。 当我附加一个调试器时,我可以看到我的VSPackage被构造,加载,并且它的FDoIdle方法被调用了两次。 在那之后,实验性的Visual Studio会话进入杂草并且似乎陷入无限循环。 如果我尝试将.txt文件保存为我的文件类型,则文件会正确保存,但不会在Visual Studio中加载,我会收到Object nullexception。

我可以看到我在这个问题中提到的问题: Visual Studio 2010着色器,intellisense和其他人。 从哪儿开始!

解决方案似乎是不使用Managed Package Framework而是使用Manage Extensibility Framework。 这很好,但是我真的很想知道我的MPF语言服务实现有什么问题。

有没有人使用MPF成功创建了LanguageService? 任何人都可以指导我一个工作示例或演练吗?

问题解决了!:

我做了一些进一步的调试,并注意到实验性的Visual Studio实例卡住了以下重复调用以下内容:

Microsoft.VisualStudio.Editor.Implementation.VsFontsAndColorsInformation.TryGetIndexForNativeItem(String name,IVsColorTable colorTable,Int32&colorTableIndex)

在预感中,我在ProvideLanguageServiceAttribute中将RequestStockColors参数指定为true,现在我可以打开我的文件类型。 我的简单扫描仪甚至还有工作语法着色!

问题解决了!:

我做了一些进一步的调试,并注意到实验性的Visual Studio实例卡住了以下重复调用以下内容:

Microsoft.VisualStudio.Editor.Implementation.VsFontsAndColorsInformation.TryGetIndexForNativeItem(String name,IVsColorTable colorTable,Int32&colorTableIndex)

在预感中,我在ProvideLanguageServiceAttribute中将RequestStockColors参数指定为true,现在我可以打开我的文件类型。 我的简单扫描仪甚至还有工作语法着色!