如何使用 VSCode api 打开自定义编辑器

Nar*_*rdu 11 typescript visual-studio-code vscode-extensions

我有一个为特定文件类型注册 CustomEditorProvider 的扩展,我需要创建一个使用编辑器打开给定文件的命令。

如果我从工作区资源管理器中单击文件,我的编辑器将正确打开,但如果我使用 showTextDocument api,内置文本编辑器将打开。

private openModule(file:vscode.Uri) {
    vscode.workspace.openTextDocument(file).then((doc: vscode.TextDocument) => {
          vscode.window.showTextDocument(doc);
    });
  }
Run Code Online (Sandbox Code Playgroud)

在用户界面中打开的编辑器上,我可以“重新打开编辑器...”,提示我选择编辑器。如果我选择自定义编辑器,它将使用正确的编辑器重新打开。

编辑器提供商选择

如何强制文本编辑器使用自定义文本编辑器而不是内置文本编辑器?

任何帮助表示赞赏

小智 8

我遇到了同样的问题,并在这里找到了答案:

https://github.com/microsoft/vscode/issues/98473#issuecomment-634306217

commands.executeCommand("vscode.openWith", uri, MyCustomEditor.viewType);
Run Code Online (Sandbox Code Playgroud)