背景
一开始,使用了editor.formatOnSave,想要保存顺便格式化,但是随着代码量的增加,格式化越来越慢,想要把这个关掉,但是关掉后不起作用
解决办法寻找
-
插件干扰方面
- 正如前面提到的,很可能是插件导致的问题。有些插件有自己的格式化逻辑,并且它们的优先级可能会覆盖 VScode 本身的
editor.formatOnSave设置。 - 例如,有像 ESLint、Rubocop(针对 Ruby)等语言相关的 linting 和格式化插件。以 ESLint 为例,它不仅用于检查代码质量,还可以自动修复(包括格式化)代码中的一些问题。
- 即使你将
editor.formatOnSave设置为false,如果 ESLint 的配置中有--fix选项在保存时自动触发,它仍然会格式化代码。你需要检查 ESLint 的配置文件(通常是.eslintrc或.eslintrc.js),找到类似"fixOnSave": true这样的配置并将其设置为false。
- 正如前面提到的,很可能是插件导致的问题。有些插件有自己的格式化逻辑,并且它们的优先级可能会覆盖 VScode 本身的
-
工作区配置问题
- 工作区的配置可能会和用户全局配置冲突。工作区配置是针对特定项目的设置,可能包含了格式化相关的指令。
- 你可以通过在项目根目录下查找
.vscode文件夹来检查工作区配置。在这个文件夹中,有一个settings.json文件,打开它后,检查是否有关于格式化的设置,比如"[javascript]": {"editor.formatOnSave": true}(这里以 JavaScript 为例)。如果有这样的设置,它会覆盖全局的editor.formatOnSave设置。你可以将这个工作区配置中的editor.formatOnSave相关设置修改为false或者删除这些特定语言的格式化设置,让它遵循全局设置。
-
延迟更新或缓存问题
- 有时候,VScode 可能没有及时更新设置或者受到缓存的影响。你可以尝试重新加载窗口来解决这个问题。
- 你可以通过选择 “视图”->“命令面板”(或者使用快捷键
Ctrl + Shift + P或Command + Shift + P),然后在命令面板中输入 “Reload Window” 并回车来重新加载 VScode 窗口。这样可以确保设置被正确加载和应用。
最终
使用"fixOnSave": true 配置在 .eslintrc.js 解决了这个问题