热退出功能已在 Insider 版本中发布
2016 年 11 月 30 日,作者:Daniel Imms,@Tyriar
让 Visual Studio Code 记住您退出时未保存的更改(热退出)的能力一直是一个备受期待的功能,事实上,它目前在 GitHub 上的 👍 反馈中排名前三 (排名第三)。我们一直在开发一项实现方案,并且它现在已在 Insider 版本中默认启用!
初始设计
我们最初考虑将备份与打开的文件夹绑定,这样当 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