如何在没有语言服务的情况下将代码片段添加到 VSIX MEF 编辑器扩展

本文关键字:添加 片段 代码 VSIX 扩展 编辑器 MEF 情况下 语言 服务 | 更新日期: 2023-09-27 18:32:56

我正在尝试使用 VS2012 的 MEF 编辑器扩展实现代码片段,我遵循了链接中的演练"实现代码片段":http://msdn.microsoft.com/en-us/library/ff926100(v=vs.110(.aspx

该实现基于演练显示语句完成。此功能工作正常。

"实现代码片段">

的第一部分是"创建和注册代码片段",这不起作用。本节末尾是步骤 8:

生成并运行项目。在项目运行时启动的 Visual Studio 实验实例中,刚刚注册的代码段应显示在 TestSnippets 语言下的代码段管理器中。

没有错误,但代码段管理器不显示测试片段语言,因此代码段不存在。我已经为此困了几个星期,找不到资源来理解这个问题。

关于如何解决此问题的任何想法将不胜感激。

谢谢

如何在没有语言服务的情况下将代码片段添加到 VSIX MEF 编辑器扩展

我意识到这并不容易,但是我已经弄乱了VSIX很长一段时间了。如果要修复此类问题,则需要使用反射器或dotPeek进行硬核调试。

通过调试,

我的意思是,您需要逐行调试所有 MEF 管道的实际实现的代码,以及使用 MEF 的代码。

基本上,只需找出"代码片段管理器"在哪里工作,然后看看为什么你的语言没有被拉入。

基本上,你需要问一个问题:

1( 为什么代码片段管理器不显示测试片段语言?

然后,你只需要通过调试来回答它,找到代码段管理器在哪里决定显示语言,看看为什么它没有出现在那里。

我以这种方式修复了很多问题,我很感激大部分代码都是 C#,这意味着很容易单步执行代码并查看执行进度。