visual-studio-code - 当文本文档未打开/加载时,无法执行命令 vscode.executeFormatRangeProvider
问题描述
无法在未打开文本文档时执行命令vscode.executeFormatRangeProvider,而我可以在不打开/加载文档的情况下使用 vscode.executeDocumentSymbolProvider ,我的用例是使用虚拟文档。
禁用所有扩展时是否会出现此问题?:是
- VS 代码版本:1.60.2
- 操作系统版本:Windows 10 专业版,10.0.19042
重现步骤:
- 创建虚拟文档 URI ex。“嵌入式内容-js://js/file%3A///c%3A/Code%20JCC/misigan.lp.js”
- 注册相同的文本内容提供程序
workspace.registerTextDocumentContentProvider('embedded-content-js', {
provideTextDocumentContent: uri => {
return 'function msg(){ alert("Hello VS"); }';
}
});
- 执行 VS-Code 命令
commands.executeCommand<TextEdit[]>(
'vscode.executeFormatRangeProvider',
virtualDocUri,
new Range(new Position(0,0),new Position(0,20)),
options
)
错误:错误:非法参数:资源,
笔记:
- 当我在第 3 步之前使用workspace.openTextDocument(virtualDocURI)时,它可以工作,但我们以后无法处理该文档。
- 如果未加载文档,则使用 DocumentSymbolProvider VSCode 在内部创建参考文档,然后将其处理掉,但使用 FormatRangeProvider 它会直接抛出异常作为非法参数:资源。
解决方案
推荐阅读
- ios - Swift Firebase 将 UID 键与 UID 字符串数组匹配
- kerberos - NFSGanesha 为客户端缓存 kerberos uid/gid
- jasmine - 获取“x”不是量角器中的函数错误
- python - pytest结果是什么意思?
- java - Azure 数据工厂 - 验证 invalid_grant 时遇到问题
- python - python字典键指向同一字典中另一个键的值
- java - 按角色过滤用户导致无限递归
- php - 如何从数组中删除键以仅在 PHP 中创建值列表?
- android - 仅允许在 Android 中侧载选定的应用程序
- javascript - 如何在网站上播放流文件 m3u