自定义智能感知扩展

Not*_*ple 27 intellisense visual-studio visual-studio-extensions

我想在Visual Studio中写一个intellisense的补充.

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

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

在此输入图像描述

Jas*_*ski 31

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

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

其次,很难知道何时何地推荐东西.在您的示例中,您说"IntelliSense for string".可悲的是,VS中没有任何API(当前)让你知道点之前是什么.您可以做一些简单的启发式方法或尝试为您的方案实现一些Good Enough™解析器,但是您现在必须接受您将无法获得完美结果.

罗斯林项目旨在解决第二个问题,所以你会发现它有益的探索远一点.由于我们期望很多人希望扩展完成,我们还考虑提供其他可扩展性API,因此您不必ICompletionSourceProvider从头开始,但这些API不在当前的CTP中.

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