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) 中进入 Stable 版本。
之后,我们希望研究如何最好地放宽触发热退出的限制,同时确保备份不会丢失 (#15467)。此解决方案在很大程度上取决于 VS Code 将如何处理多个文件夹工作区 (#396)。
Daniel Imms,VS Code 团队成员
@Tyriar