自定义智能感知扩展

时间:2012-05-05 08:22:37

标签: visual-studio intellisense visual-studio-extensions

我想在Visual Studio中添加intellisense。

是否可以扩展,从我的研究中我没有找到关于intellisense扩展的任何样本或文档。

如何让intellisense显示一个简单的HelloWorld消息,如下所示(在运行时将hello world添加到String的intellisense中):

enter image description here

1 个答案:

答案 0 :(得分:30)

因此,在Visual Studio 2010及更高版本中,您要使用的可扩展性API位于Microsoft.VisualStudio.Languages.IntelliSense命名空间下。在较高级别,您希望MEF导出ICompletionSourceProvider,这将提供您需要的项目。有两篇很好的博客文章herehere来展示基本技术。

如果您想让屏幕截图成为现实,那么您将遇到两个问题。 (这就是为什么我要求这个场景,因为我的建议会改变。)首先,这个方法在法律上不允许你附加到现有的完成集,而是提供一个新的完成集。在UI中,它显示为两个选项卡,如Visual Basic编辑器中的Common / All选项卡。这是当前API的限制。您可以尝试修改AugmentCompletionSource中的一个现有完成集,但我不知道这是否有效。无论如何,这肯定是不受支持的。

其次,很难知道何时何地推荐东西。在您的示例中,您说“string的智能感知”。可悲的是,VS中没有任何API(当前)让你知道点之前是什么。你可以做一些简单的启发式方法或尝试为你的场景实现一些Good Enough™的解析器,但是你现在必须接受你不会有完美的结果。

Roslyn项目旨在解决第二个问题,因此您可能会发现进一步探索有用。由于我们期望很多人希望扩展完成,我们还考虑提供其他可扩展性API,因此您不必从头开始ICompletionSourceProvider,但这些API不在当前的CTP中。

[免责声明:我是使用IntelliSense的Roslyn团队成员。]