Visual Studio扩展:如何在错误列表中拦截/修改/删除生成错误消息?

克里斯·克莱恩

我正在开发一个Visual Studio扩展,它将“清理”编译错误消息,使它们更易于阅读。

我已经知道如何产生自己的错误。相反,我要尝试做的是修改/替换由于解析编译输出而将Visual Studio添加到“错误列表”窗格中的错误消息的文本。

到目前为止,我一直没有找到实现此目标的方法。这是我的发现:

  • SVsErrorList中的IVsTaskItems都是只读的,因此我无法直接对其进行编辑。
  • 由于相同的原因,我也不能删除IVsTaskItems(因此无法用我自己的IVSTaskItems替换它们)。
  • 我可以将自己的文本附加到“生成输出窗口”窗格中,但是我无法修改现有文本,以便在Visual Studio解析错误消息之前先编辑错误消息。

还有其他方法可以实现此目标吗?在扩展内是否存在以下方法:

  • 挂钩VS内部进行的调用,以将错误消息添加到错误列表,并在处理之前对其进行更改?
  • 挂钩生成过程中的输出并在VS处理它之前对其进行修改?
  • 通过其他方式实现这一目标?
山姆·哈威尔

正确的方法是修改编译过程的输出,或者修改项目系统和/或.targets文件将信息从编译器报告给IDE的方式。如果您对编译器或项目系统都没有控制权,那么这将是一件很难甚至无法完成的任务。

  1. 显示的任务实现了IVsTaskItem,该接口实际上是由客户端代码实现的,因此不能保证任务项将提供修改其任何值的能力。

  2. IVsTaskList2接口添加了一个方法RemoveTasks,但是它要求您具有在注册提供程序时返回的提供程序cookie(并且无法获取此方法)。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Visual Studio 2017中禁用JavaScript构建错误?

如何在Visual Studio Code中修改Java样板代码生成?

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

如何在Visual Studio中复制错误消息

如何在Visual Studio扩展的属性窗口对象列表中修改名称

Visual Studio C ++中的msmpi.dll错误消息

Visual Studio代码扩展:如何在浏览器中向文件添加错误标记?

在Visual Studio Code C ++扩展中突出显示错误语法

收到错误消息“扩展主机意外终止。” 在Visual Studio代码中

Visual Studio中的错误...扩展加载问题

如何在Visual Studio Code中修改C ++的代码格式?

如何在Visual Studio Code中禁用新的“灰色错误”?

如何在Visual Studio Code for TypeScript中完全导入而获得编译器错误消息?

Visual Studio 2019中的生成错误不一致地显示在错误列表中

Visual Studio中的Python:错误错误

如何从Visual Studio 2012中永久删除扩展名?

Visual Studio中的Phalanger错误

如何在Visual Studio 2013 Express中安装单元测试生成器扩展

Visual Studio错误

如何在Visual Studio的“错误列表”面板中删除不必要的Less错误

Visual Studio Runner中的xUnit错误消息

修改Visual Studio会显示.NET错误

Visual Studio 中的错误结果

在 Visual Studio 中构建错误

如何在 Visual Studio 错误列表中显示失败的 NUnit 测试

如何在 Visual Studio 中抑制“并非所有代码路径都返回值”错误消息

Visual Studio 错误列表中未显示重要信息级别的 PostSharp 消息

如何使用 Visual Studio2019 宏在 Visual Studio 的错误列表中“全选并复制”

Visual Studio 代码 python 扩展错误