我正在研究Visual Studio代码扩展,我需要检测何时关闭某个文档窗口。我知道vscode.workspace.onDidCloseTextDocument事件,它一般工作。
但是如果我通过API从工作区打开一个文件:
vscode.workspace.openTextDocument(localPath).then(function (doc) {
vscode.window.showTextDocument(doc, 1);
});
然后关闭它,onDidCloseTextDocument不像往常一样触发。几分钟之后它的火了。
我知道这是否是一些错误或这是VSCode的工作方式,但我需要知道如何检测文档窗口何时关闭。
我正在阅读通过API打开文件是某种“虚拟”文件。所以,这可能导致问题。
处理文本文档时会发出onDidCloseTextDocument
。要在关闭可见文本文档时添加事件侦听器,请在窗口命名空间中使用TextEditor事件。请注意,当TextEditor关闭但文档在另一个可见文本编辑器中保持打开时,不会发出此事件。
有关更多信息,请参阅this。
private _subscriptions: vscode.Disposable;
constructor() {
// Listen to closeTextDocument
this._subscriptions = vscode.workspace.onDidCloseTextDocument(
// your code here
);
}
dispose() {
this._subscriptions.dispose();
}