【问题标题】:VSCode: opening a folder and a file from the same routineVSCode:从同一个例程中打开一个文件夹和一个文件
【发布时间】:2017-05-22 23:53:48
【问题描述】:

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

似乎是一项简单的任务,但我花了相当长的时间却无法解决。 我可以轻松地做一个或另一个,但不能将两者都作为一个单一的操作。

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的回调。

将不胜感激任何帮助/提示。

【问题讨论】:

  • 请分享您是如何解决此案的。如果您对此有任何想法,那就太好了。

标签: visual-studio-code


【解决方案1】:

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

显然打开文件夹会完全终止执行上下文。这就是 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.

因此,目前似乎无法在当前窗口中打开具有打开并处于活动状态的特定文件的文件夹。

【讨论】:

    猜你喜欢
    • 2019-10-02
    • 2013-01-23
    • 2013-06-29
    • 1970-01-01
    • 2017-05-10
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    相关资源
    最近更新 更多