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

ElektroStudios

在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自动化对象浏览器,那可能是一种更好且可行的方法,但是我只是在评论,一旦解决了这个问题,也许这将是一个新问题,因为首先需要解决这一步骤,希望如此。

塔米尔·韦瑞德(Tamir Vered)

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

  • 悬停文本元素时显示的工具提示称为QuickInfo工具提示,您可以自己通过从IQuickInfoSourceinterface继承并创建match来实现IIntellisenseController可以在MSDN上找到完整的演练

    • 例:

      QuickInfo工具提示

    • 确保使用属性将您的IQuickInfoSourceProvider负载设为默认负载IQuickInfoSource 之前负载-否则将不会显示默认负载Visual-StudioOrderQuickInfo

      [Order(Before = "Default Quick Info Presenter")]
      
  • 编写表示其签名的方法名称时显示的工具提示将被调用,Signature Help并且可以通过ISignatureHelpSourceQuickInfo工具提示非常相似的方式继承来实现完整的演练可以在MSDN上找到

    • 例:

      签名帮助

  • Code Snippets -与您无关。

  • Statement Completions -与您无关。

请注意,您将需要IClassifier在项目中制作一个以便显示工具提示,与此同时,您还可以修改视图,以便根据Exceptions需要以不同的方式查看。MSDN上的指南

另一方面,获取有关方法的信息则取决于您。您可以使用外部手册来使用它,也可以在您正在使用的手册中使用它,IQuickInfoSource可以通过在您正在浏览的代码文档中XML Comment分析ITextStructureNavigator的读词来从匹配的文档中阅读该手册Roslyn

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

PS:为了研究该领域,我设法对质量进行了类似的扩展,因此,如果您对实现本身有任何以下疑问,请随时提出。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何为文档注册Visual Studio扩展程序提供程序

如何卸载“ Microsoft Advertising SDK” Visual Studio扩展?

Visual Studio扩展项目:如何更改目标Visual Studio版本?

如何使Visual Studio Intellisense建议“包括”?

Intellisense在Visual Studio Code中不起作用-mssql扩展

如何导出Visual Studio Code扩展列表?

如何配置扩展Visual Studio Code

如何通过Visual Studio扩展使构建失败

如何离线安装Visual Studio Code扩展?

如何卸载.vsix Visual Studio扩展?

Visual Studio 扩展:如何禁用本机命令?

如何使扩展适应Visual Studio 2019?

如何使用anaconda3在Visual Studio Code中为python启用intellisense?

在Visual Studio扩展中使用内置图标

在Visual Studio中使用VSCode扩展

如何选择SDK版本Visual Studio 2013

Visual Studio扩展和工具。许可信息在哪里

如何在Visual Studio Code vim扩展中使用vim(键绑定)

如何使用roslyn在Visual Studio 2015扩展中检测符号重命名?

如何使用Visual Studio扩展创建绿色(或蓝色)花体装饰

如何在不使用GUI的情况下卸载Visual Studio Code扩展?

如何使用Visual Studio 2012构建Windows 7凭据提供程序示例?

使用 Visual Studio SDK,我将如何折叠一段代码?

如何告诉Visual Studio 2015使用Windows 10 SDK中的最新UCRT

如何在使用 Visual Studio 时为 .net framework 4.7.2 项目创建 SDK 样式项目?

如何安装Windows 10 SDK以与Visual Studio 2017一起使用

如何在Visual Studio 2012 Update 3中使用Windows SDK 8.1

在Visual Studio 2017中,如何为Cordova使用现有的Android SDK?

在使用.script的同时在Visual Studio代码中使用javascript intellisense