如何在vscode中强制更新代码镜头

姆萨尔诺夫斯基

我正在使用Metals(Scala语言服务器)中的代码镜头来进行“运行代码”操作在我们的用例中,只有在编译完成后才能提供这些代码镜头。如果用户在编译过程中或编译后未修改源文件,则vscode不会发送对代码镜头的请求。从编译之前,这可能导致“陈旧的代码镜头”的丑陋状态。

深入研究vscode-languageserver-node的内部结构,我注意到CodeLensProvider可以发出onDidChangeCodeLenses事件,但不会反映在LSP中(https://github.com/microsoft/language-server-protocol/issues/192) ,因此我无法将此事件发送到vscode。

可能会强制重新加载代码镜头的另一件事是ICodeEditor :: setModel方法,但是我不确定是否可以直接从vscode扩展名直接完成,因为我无法获得对代码编辑器的引用。

如何从Language Server或vscode扩展中完成此操作?还是有另一种首选的方式?

Gama11

不幸的是,语言服务器协议确实还不支持此功能。我之前打开过的相应功能请求可以在这里找到

我可以通过在扩展侧为相同的语言ID实现一个虚拟对象CodeLensProvider来解决此问题(VSCode API通常允许为语言功能注册多个提供程序)。它什么也没有做,只是在必要时调用事件,实际的实现仍在语言服务器端。onDidChangeCodeLenses

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 vscode 中为 python 启用代码镜头支持?

如何在React代码中强制更新组件以将深色主题切换为浅色主题

如何在VScode中运行选择代码?

如何在vscode扩展CompletionItems中强制执行顺序

如何在Visual Studio代码(VSCode)中设置代码格式

如何在Volley JsonObjectRequest中强制代码转到onErrorResponse

如何在Delphi中强制分层源代码结构

如何在 gitlab 中更新代码

React:如何在功能组件中强制状态更新?

如何在react-apollo中强制更新数据缓存?

如何在reactjs中从父组件强制更新子组件

如何在 VScode 中删除/隐藏源代码管理通知?

如何在Mac上的vscode中“跳转到源代码”?

如何在vscode中查找python方法的源代码

如何在vscode中添加与语言无关的代码段?

如何在vscode中粘贴恒定的代码块

如何在vscode中实现自己的代码轮廓布局?

如何在Vscode中从Github运行Angular代码

如何在VSCode中禁用代码段的Enter按钮

如何在 vscode 中查看全宽代码

如何在 vscode 中为代码段设置光标选择?

如何在HTML画布中添加镜头光晕效果

如何在javascript中添加镜头之间的延迟

如何在VS2017中的策略中强制执行代码分析检查?

如何在Theano中更新扫描Cython代码?

如何在 Woocommerce 中更新优惠券代码对象

如何在 Software Updater 中查看更新的源代码?

如何在vs代码中更新配置文件?

如何在Fedora 27中更新vs代码