VSCode:打开同一例程中的文件夹和文件

时间:2017-05-22 23:53:48

标签: visual-studio-code

作为同一操作的一部分,从扩展程序打开文件夹和文件的正确方法是什么?

看起来像一个简单的任务,但我花了很长时间,无法解决它。 我可以很容易地做一个或另一个但不能同时做一个操作。

commands.executeCommand('vscode.openFolder', 
                        Uri.parse('E:\\dev\\proj'))
        .then(() => commands.executeCommand('vscode.open',
                                            Uri.file('E:\\dev\\files\\file.json'));

上面的代码打开了一个文件夹,但没有打开文件。从调试器中我看到vscode.open命令被触发但文件未打开。并且'vscode.open`只会按预期打开文件。

似乎在打开文件夹之后,整个执行上下文都消失了。

我做了这个残酷的实验:

setTimeout(() => commands.executeCommand('vscode.open',
                                          Uri.file('E:\\dev\\files\\file.json'), 3000);
commands.executeCommand('vscode.openFolder', 
                        Uri.parse('E:\\dev\\proj'))

并且谴责如果调用vscode.openFolder,则永远不会调用setTimeout的回调。

非常感谢任何帮助/提示。

1 个答案:

答案 0 :(得分:0)

我找到了问题的原因。但不是解决方案。

显然打开文件夹会完全终止执行上下文。这就是VSCode文档所说的内容:

Note that opening in the same window will shutdown the current extension host process and start a new one on the given folder unless the newWindow parameter is set to true.

因此,目前似乎无法在当前窗口中打开一个打开并激活特定文件的文件夹。