繁体   English   中英

使用 VSCode 扩展 API 关闭特定打开的选项卡

[英]Close specific open tabs using VSCode extension API

我正在编写一个创建临时暂存文件的扩展程序。 我想允许用户删除所有临时文件。

当我在编辑器中打开临时文件时会出现我的问题。 如果我只是删除文件,我会收到文件不存在的错误消息:

错误信息

在删除文件之前,有没有办法可以根据文件名关闭所有打开的选项卡?

为避免此错误,请在删除关联文件之前关闭打开的文本编辑器。

vscode.workspace.textDocuments包含一组打开的文本文档。 在删除文档之前,过滤vscode.workspace.textDocuments数组以仅包含要删除的文件的文本文档,然后遍历过滤后的数组(循环不要使用 forEach,因为关闭和删除文本文档是异步的)和将每个文本编辑器置于焦点然后关闭它。 然后运行您的删除代码。 像这样:

const filteredTextDocuments = vscode.workspace.textDocuments.filter(td => td.fileName === 'scratchFileName')

for (const td of filteredTextDocuments) {
  await vscode.window.showTextDocument(td, { preview: true, preserveFocus: false });
  await vscode.commands.executeCommand('workbench.action.closeActiveEditor');
  await vscode.workspace.fs.delete(td.uri);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM