Owe*_*wen 6 intellisense mef syntax-highlighting visual-studio-2010
好的,在我开始之前,我意识到有很多关于这个主题的文档,但到目前为止,我还没有为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/线程/ a310fe67-afd2-4592-b295-3fc86fec7996
现在,我已经到了这样一个点,在运行包时MEF似乎已正确连接(我知道这是因为打开调试器后我可以看到包初始化和FDoIdle方法被命中).
当我打开我在ProvideLanguageExtensionAttribute中注册的扩展文件时,所有内容都会在无限循环中死亡,但没有调试符号(尽管它们已加载).
看看ook样本和MEF示例,它们似乎是针对同一问题的完全不同的方法.在ook样本中,有一些Clasifications和Completion控制器的概念,这些概念在MEF示例中没有提到.此外,他们似乎没有创建一个包或语言服务,所以我不知道它应该如何工作?
在MEF示例中,我的假设是我需要挂钩"IScanner.ScanTokenAndProvideInfoAboutIt"以提供语法高亮显示?如果我能用这种方法,哪个会好的.
所以我的第一个问题是我应该采取哪种方法?或者两者都以某种方式结合在一起?
我的第二个问题是,在哪里可以找到实现沼泽标准基本语法高亮和intellisense或VS2010的基本完全工作项目?
第三,在MEF示例中,当我创建一个Package时,为我创建了一堆测试项目.我看来集成测试以某种方式启动了VS2010测试装置,但是测试失败了.用测试编写我的服务会很好,但我不知道我可以测试每个交互的内容/方式,所以对测试语言服务的任何引用都会有所帮助.
最后,请以我认为有用的方式抛出任何资源/书籍链接.
干杯,克里斯.
NB对不起我意识到这是部分问题部分咆哮,但我从未如此困惑.
首先,该包示例未使用 MEF。本质上,您在问题中提到 MEF 的每个地方实际上并不是 MEF,而是托管包框架 (MPF),通俗地称为托管语言服务 (MLS)。您可以通过两件事知道您的扩展是否使用 MEF:vsixmanifest 将您的程序集列出为包含 MEF 组件,并且您在代码中看到[Export]和属性。[Import]
最简单的方法是使用 MEF。由于您已经安装了 SDK,因此您还有一个编辑器分类器项目的模板(位于“C# (or VB)->Extensibility->Editor classifier新建项目”对话框中)。您当然可以使用语言服务/着色器/包来做到这一点,但代码会比等效的分类器多得多。
Oook 解决方案是此示例,应该可以工作;如果它无法构建/工作,那么您可以向我发送电子邮件(微软的 noahric),说明您看到的错误,以便我可以向该示例的所有者发送电子邮件吗?
一般来说,您还应该阅读我对“How can I write a plugin for VS2010 using MEF?”问题的回答。其中包含其他应该有帮助的资源的链接。
| 归档时间: |
|
| 查看次数: |
1221 次 |
| 最近记录: |