在我的扩展中,我先使用vscode.workspace.openTextDocument打开一个本地文件,然后使用vscode.window.showTextDocument和vscode.workspace.onDidCloseTextDocument关闭该文件。
如果使用代码运行扩展,这似乎工作得很好。
现在我已经使用vsce包创建了vsix文件。棘手的事情来了
vscode.workspace.onDidOpenTextDocument和vscode.workspace.onDidSaveTextDocument回调都是按照预期调用的。但是,当我在UI中关闭文件时,不会调用vscode.workspace.onDidCloseTextDocument回调。(在安装扩展时,我会遇到这个问题。)
我错过了什么吗?
重现步骤:
1)使用vscode.workspace.openTextDocument,然后使用vscode.window.showTextDocument打开文件。
2)监听vscode.workspace.onDidCloseTextDocument中的事件。
3)在编辑器中关闭文件。
4)检查vscode.workspace.onDidCloseTextDocument回调是否按预期调用。
此git repo https://github.com/akhilravuri1/hellovscode中存在代码,请克隆代码并通过在命令行中键入vsce package命令来创建vsix包。使用vsix文件安装扩展,并选择hello world命令,然后它将打开一个文件,但当您关闭它时,它就会关闭,但我希望在命令面板中有一个带有YES或NO的选择选项。
提前谢谢。
发布于 2019-08-16 19:50:17
我试过你的分机了。
当欢迎屏幕文本编辑器关闭并加载ddl.txt时,我得到OnClose-event。
文档说您应该使用vscode.window on-events,但它们不允许监视文档关闭。
非常奇怪的是,OnClose-event会在语言更改时触发(这种情况会发生)。您无法判断是语言更改还是文档关闭。
当我用File > Open打开并关闭ddl.txt时,我得到了OnClose-event。
我在用File > Open打开的所有文件上都得到了OnClose-event。
看起来用vscode.workspace.openTextDocument和vscode.window.showTextDocument打开的文件不会触发OnClose-event。
您应该提交一个错误,因为这些调用会生成一个正常的TextDocument。
https://stackoverflow.com/questions/57498434
复制相似问题