热退出功能登陆 Insiders 版本

2016年11月30日,作者:Daniel Imms,@Tyriar

Visual Studio Code 能够在退出时记住未保存更改(热退出)是一项长期以来备受呼吁的功能,实际上它目前在 GitHub 上的 👍 反应数量排名第 3 位。我们已经为此功能的实现努力了一段时间,现在它已在 Insiders 版本中默认启用!

初步设计

我们最初考虑将备份与打开的文件夹绑定,这样一旦关闭 VS Code,必须再次打开同一个文件夹才能触发热退出恢复。这种方法的主要问题在于备份可能会“丢失”;备份文件虽然还在,但用户可能忘记了他们在进行更改时所处的文件夹。

限制为整个应用程序关闭

正是由于担心备份会持久化却无法被发现,我们决定对热退出的触发时机增加一项限制:热退出仅在关闭所有 VS Code 窗口时,或者在 Mac 上退出应用程序(Cmd+Q)时发生。

虽然起初这看起来有些受限,特别是当你经常处理多个文件夹时,但它的好处在于,当你重新启动 VS Code 时,所有带有备份的工作区都会呈现出来,因此不会对还有什么内容被备份产生歧义。

此限制的一个重要例外是,当重新加载窗口时,热退出总是会触发。这意味着安装扩展时再也不会弹出烦人的“保存”对话框了!

崩溃保护

热退出的工作方式是定期对未保存的文件进行备份。如果 VS Code 意外崩溃,下一次打开该文件夹时将进行备份恢复。

展望未来

热退出功能将在 11 月/12 月的更新(1.8.0)中加入到稳定版中。

此后,我们将研究如何最好地放宽热退出触发条件的限制,同时确保备份不会丢失(#15467)。该解决方案在很大程度上取决于 VS Code 如何处理多文件夹工作区(#396)。

#HappyCoding

Daniel Imms,VS Code 团队成员
@Tyriar

© . This site is unofficial and not affiliated with Microsoft.