热退出功能面向 Insider 用户推出
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)。
Daniel Imms,VS Code 团队成员
@Tyriar