簡體   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