vscode 尝试逐步填充诊断集合会导致对代码操作提供者的过度调用,

ux6nzvsh  于 6个月前  发布在  Vscode
关注(0)|答案(3)|浏览(63)

版本:1.84.2(用户设置)
提交:1a5daa3
日期:2023-11-09T10:51:52.184Z
Electron:25.9.2
ElectronBuildId:24603566
Chromium:114.0.5735.289
Node.js:18.15.0
V8:11.4.183.29-electron.0
OS:Windows_NT x64 10.0.22631
我正在重新设计C/C++扩展如何填充诊断信息(以及内嵌提示、语义标记等),以便随着可用结果的增加逐步填充文档。
看起来DiagnosticCollection目前没有提供一种有效的方法来将Diagnostic添加到现有集合中。需要获取Diagnostic数组,进行更改,然后再设置它。我发现,在处理大文件和多次迭代增强诊断列表时,我会收到不必要的(昂贵的)请求,为Diagnostic提供CodeAction。此外,如果用户点击该代码片段,他们会看到不必要的重新生成时CodeAction灯泡消失在他们下面。
也许可以通过向DiagnosticCollection添加“add”函数或保留现有的Diagnostics列表来避免重复请求CodeAction

7xllpg7q

7xllpg7q1#

这个功能请求现在是我们待办事项列表的候选项目。社区有60天的时间对这个问题进行投票。如果它收到20个赞成票,我们将把它移到我们的待办事项列表中。如果没有,我们将关闭它。要了解更多关于我们如何处理功能请求的信息,请参阅我们的documentation
快乐编码!

enxuqcxy

enxuqcxy2#

目前,C/C++智能感知引擎将为每个逐步更新的代码块生成全新的错误诊断集(到目前为止是整个文件),并可能删除之前代码块中包含的一些错误。如果VS Code继续接受全新的诊断集,并在内部避免对“现有”条目的重新请求CodeActions(也许在更新之间没有发生编辑?),那么它可能会对我们有所帮助。我仍然建议提供一个接口来添加和删除条目,因为那样会更灵活(我们可以自己进行重复检测)。如果只有前者选项可行(或更容易),那么它仍然可以帮助我们使逐步填充更加高效。

fcy6dtqo

fcy6dtqo3#

这个功能请求尚未收到20个社区投票,以将其添加到我们的待办事项列表中。还有10天时间。要了解更多关于我们如何处理功能请求的信息,请参阅我们的documentation
快乐编码!

相关问题