bla*_*ool 10 visual-studio-code vscode-extensions
我正在编写 vscode 扩展。
我用 打开了一个 TextDocument vscode.window.showTextDocument,想稍后关闭它。但是我找不到api来关闭它。最后我找到了这个提交,它被删除了closeTextDocument。我现在该怎么办?
小智 10
我遇到了同样的问题。我设法做到的唯一方法是通过workbench.action.closeActiveEditor,正如TextEditor.hide.
这是hackish - 基本上在编辑器中显示文档,然后关闭活动编辑器:
vscode.window.showTextDocument(entry.uri, {preview: true, preserveFocus: false})
.then(() => {
return vscode.commands.executeCommand('workbench.action.closeActiveEditor');
});
Run Code Online (Sandbox Code Playgroud)
从 VSCode v1.67 开始,您可以使用它TabGroups来查找并关闭您喜欢的文档。
例如这样(在TypeScript中):
import * as vscode from "vscode";
export async function closeFileIfOpen(file:vscode.Uri) : Promise<void> {
const tabs: vscode.Tab[] = vscode.window.tabGroups.all.map(tg => tg.tabs).flat();
const index = tabs.findIndex(tab => tab.input instanceof vscode.TabInputText && tab.input.uri.path === file.path);
if (index !== -1) {
await vscode.window.tabGroups.close(tabs[index]);
}
}
Run Code Online (Sandbox Code Playgroud)
用法示例:
const myFile = vscode.Uri.file('c:\some\random\file.txt');
await closeFileIfOpen(myFile);
Run Code Online (Sandbox Code Playgroud)
参考:最初受到ct_jdr 这个答案的启发。
| 归档时间: |
|
| 查看次数: |
1499 次 |
| 最近记录: |