如何使用Visual Studio SDK扩展提供Intellisense的信息?

Ele*_*ios 18 .net c# vb.net visual-studio visual-studio-sdk

在C#或Vb.Net中,使用Visual Studio 2013 SDK,当显示成员的信息时,如何在Intellisense上添加其他元素?

我的意图是不添加一个完成/建议元素,我想在一个成员显示的信息下面添加自定义附加信息,该成员可以抛出异常,如方法,函数或属性(getter/setter),而不是关键字.

我读了一下Microsoft.VisualStudio.Language.Intellisense命名空间的成员,但我没有对它有任何明确的想法.

在我能得到的帮助下,我的目标是找到开发一个简单扩展的答案,该扩展将为成员添加(记录)异常信息,如下所示:

在此输入图像描述

我想在Visual Studio for C#中恢复这个有用的功能,并为VB.Net添加它,如果成功的话,我会像过去那样使用这个有用的扩展来免费分享它:

我只是评论,因为任何帮助都可以通过这种方式为我们所有人带来回报!


除了我的问题,并且只有另外,如果有人可以开始指导我如何找出检索成员(<exception cref="Exception name">)的Xml文档来执行此操作的方法,或者可能是一种简单的方法,我将非常感激.

编辑:

关于Xml文档,我想到使用Visual Studio 对象浏览器来检查将由Intellisense列出的成员的异常,而不是弄乱Reflection?获取异常信息.一旦我弄清楚如何从SDK自动化对象浏览器,这可能是一种更好,更可行的方法,但我只是评论这个,也许这个问题一旦解决就会成为一个新问题,因为首先我需要解决这一步,我希望如此.

Tam*_*red 9

IntelliSence对于以下每种情况,您需要使用几种类型的可扩展性点:

请注意,您需要IClassifier在项目中创建要显示的工具提示,您还可以修改视图,以便根据Exceptions需要以不同方式查看.MSDN指南.

另一方面,获取有关方法的信息取决于您.您可以使用外部手动源并在您使用它IQuickInfoSource或从匹配的XML Comment文档中读取它,方法是ITextStructureNavigator使用Roslyn您正在导航的代码文档分析读取的单词.

很抱歉,如果这是一个小小的抽象答案,但这是一个非常广泛的问题,有很多方法可以实现这样的扩展.

PS:我已经设法以低质量进行类似的扩展,以便研究这个领域,所以如果你有任何关于实现的问题,请随意询问.