如何在我的 VS 代码扩展中获得选定的诊断?

Posted

技术标签:

【中文标题】如何在我的 VS 代码扩展中获得选定的诊断?【英文标题】:How to get selected diagnostic in my VS Code Extension? 【发布时间】:2021-12-17 05:52:37 【问题描述】:

在 VS Code Extension API 的帮助下,我可以在打开的编辑器中获得所有当前的诊断信息,如下所示:

const allDiagnostics = vscode.languages.getDiagnostics();

我编写了一个命令,删除生成这些诊断的所有提及:当您将鼠标悬停在诊断上并单击“快速修复...”时,该命令出现,单击它后,所有那些产生诊断的提及已从编辑器中删除:

但是,我一直无法找到获得所选诊断的方法。例如,在上图中,我希望该命令仅删除 Calibrate(),而不是在编辑器中产生诊断的其他提及。比如:

const selectedDiagnostic = vscode.languages.getSelectedDiagnostic();

有没有办法在我的代码中只检索选定的诊断?

【问题讨论】:

【参考方案1】:

在方法provideCodeActions 中的CodeActionProvider 中,诊断位于context 参数中

【讨论】:

以上是关于如何在我的 VS 代码扩展中获得选定的诊断?的主要内容,如果未能解决你的问题,请参考以下文章

VS2015 Profiler 中的外部代码

如何使我的代码诊断语法节点操作对关闭的文件起作用?

如何从UIPickerView获取选定的值

如何在我的数据集中获得每个月的 MAX/MIN 函数?

从 Pepper QiSDK 获取诊断

如何在VS代码的SonarQube扩展中自定义和关闭声纳规则