【问题标题】:Visual studio 2010 colourizers, intellisense and the rest. Where to start!Visual Studio 2010 着色器、智能感知等。从哪儿开始!
【发布时间】:2010-05-31 16:57:45
【问题描述】:

好的,在我开始之前,我意识到有很多关于这个主题的文档,但到目前为止,我什至没有为 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/thread/a310fe67-afd2-4592-b295-3fc86fec7996

现在,我已经到了一个点,当运行包时,MEF 似乎已正确连接(我知道这一点,因为在调试器打开的情况下,我可以看到包初始化和 FDoIdle 方法正在被命中)。

当我打开已向 ProvideLanguageExtensionAttribute 注册的扩展文件时,一切都像死循环一样死掉,但没有命中调试符号(尽管它们已加载)。

查看 ook 示例和 MEF 示例,它们似乎是解决同一问题的完全不同的方法。在 ook 示例中,有 MEF 示例中未提及的 Clasifications 和 Completion 控制器的概念。另外,他们似乎没有创建包或语言服务,所以我不知道它应该如何工作?

对于 MEF 示例,我的假设是我需要连接到“IScanner.ScanTokenAndProvideInfoAboutIt”以提供语法突出显示?如果我能达到这种方法,那就太好了。

所以我想我的第一个问题是我应该在这里采用哪种方法?还是他们都以某种方式联系在一起?

我的第二个问题是,我在哪里可以找到一个实现沼泽标准基本语法突出显示和智能感知或 VS2010 的基本完整工作项目?

第三,在我创建包的 MEF 示例中,为我创建了一堆测试项目。我似乎集成测试以某种方式启动了 VS2010 测试平台,但测试失败。用测试编写我的服务会很好,但我不知道我可以用什么/如何测试每个交互,所以任何对测试语言服务的引用都会有所帮助。

最后,请以我认为有用的方式提供任何资源/书籍链接。

干杯,克里斯。

注意抱歉,我意识到这部分是问题部分是咆哮,但我从未如此困惑过。

【问题讨论】:

    标签: visual-studio-2010 intellisense syntax-highlighting mef


    【解决方案1】:

    首先,包示例使用 MEF。基本上,您在问题中提到 MEF 的每个地方实际上都不是 MEF,而是托管包框架 (MPF),也通俗地称为托管语言服务 (MLS)。您会通过两件事知道您的扩展是否使用了 MEF:vsixmanifest 将您的程序集列为包含 MEF 组件,并且您会在代码中看到 [Export][Import] 属性。

    最简单的方法使用MEF。由于您安装了 SDK,因此您还有一个编辑器分类项目的模板(在“新建项目”对话框中的 C# (or VB)->Extensibility->Editor classifier 下)。您当然可以使用语言服务/着色器/包来做到这一点,但代码会比等效的分类器多得多。

    Ook 解决方案就是这个示例,应该工作;如果它无法构建/工作,那么您能否向我发送电子邮件(微软的 noahric),其中包含您看到的错误,以便我可以通过电子邮件发送该示例的所有者?

    一般来说,您还应该阅读my answer 中关于“如何使用 MEF 为 VS2010 编写插件?”的问题。这包含指向其他应有帮助的资源的链接。

    【讨论】:

    • 感谢您的更新,我会向您发送一封电子邮件,说明我在使用 ook 时遇到的问题!解决方案。我还注意到我在“可扩展性”选项卡下没有可用的编辑器分类器项目模板,这让我想知道我是否错误地安装了 SDK 或在我的机器上运行了早期版本。
    • 顺便说一句,Noah,你强迫我阅读 MEF 及其非常有趣的东西。在我深入挖掘之前,我真的不把它理解为一个 IoC 容器。我现在了解 VS 如何利用这一点。也许在发布/咆哮之前值得我多读一点:-)。
    • 好的,所以我明白了为什么我无法构建 Ook!示例 - 我只安装了 beta SDK。此外,我无法使用 VS 测试 shell 启动示例,因为缺少指定运行 VS 的调试属性,但我添加了这些,一切都很好。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多