检测文档何时关闭

问题描述 投票:8回答:2

我正在研究Visual Studio代码扩展,我需要检测何时关闭某个文档窗口。我知道vscode.workspace.onDidCloseTextDocument事件,它一般工作。

但是如果我通过API从工作区打开一个文件:

vscode.workspace.openTextDocument(localPath).then(function (doc) {
    vscode.window.showTextDocument(doc, 1);
});

然后关闭它,onDidCloseTextDocument不像往常一样触发。几分钟之后它的火了。

我知道这是否是一些错误或这是VSCode的工作方式,但我需要知道如何检测文档窗口何时关闭。

我正在阅读通过API打开文件是某种“虚拟”文件。所以,这可能导致问题。

javascript visual-studio-code vscode-extensions
2个回答
6
投票

处理文本文档时会发出onDidCloseTextDocument。要在关闭可见文本文档时添加事件侦听器,请在窗口命名空间中使用TextEditor事件。请注意,当TextEditor关闭但文档在另一个可见文本编辑器中保持打开时,不会发出此事件。

有关更多信息,请参阅this


3
投票
private _subscriptions: vscode.Disposable;

constructor() {

    // Listen to closeTextDocument
    this._subscriptions = vscode.workspace.onDidCloseTextDocument(
        // your code here
    );
}

dispose() {
    this._subscriptions.dispose();
}
© www.soinside.com 2019 - 2024. All rights reserved.