如何阻止Visual Studio 2017自动格式化JavaScript代码
解决VS2017自动压缩代码格式的问题
我完全懂这种代码格式被强制乱改的抓狂感——毕竟对咱们讲究格式的开发者来说,代码的排版舒适感真的太重要了!针对你遇到的VS2017把if (something == somethingelse) {自动改成if(something==somethingelse){的问题,我整理了几个针对性的解决步骤,你可以逐一排查:
检查VS内置的JavaScript格式化设置
你提到已经看了TextEditor下的JavaScript设置,但可能有些细节没注意到:
- 打开VS2017的工具->选项->文本编辑器->JavaScript/TypeScript->格式化->间距
- 确保以下几个选项是勾选状态:
- 在控制流语句中的关键字后插入空格(对应
if和括号之间的空格) - 在二元运算符周围插入空格(对应
==两边的空格) - 在块大括号前插入空格(对应
)和{之间的空格)
- 在控制流语句中的关键字后插入空格(对应
- 同样可以检查同路径下的换行设置,确保没有强制合并不必要的换行。
排查EditorConfig的影响
如果你的项目根目录下存在.editorconfig文件,它的配置会优先于VS的全局设置,可能会覆盖你的格式偏好:
- 打开这个文件,检查是否有类似以下的配置:
如果有,把对应的值改成符合你需求的(比如space_after_keyword_in_control_flow_statements = false operator_newline = nonespace_after_keyword_in_control_flow_statements = true)。
检查第三方格式化插件
如果你安装了Prettier、ESLint这类格式化插件,它们可能会接管VS的自动格式化行为:
- 打开扩展和更新,查看已安装的插件,暂时禁用相关格式化插件,再测试输入代码是否还会被强制修改。
- 如果是插件导致的,可以在插件的设置面板里调整格式规则,和你的偏好保持一致。
重置VS设置(终极方案)
如果以上方法都无效,可能是VS的设置文件出现了异常:
- 打开工具->导入和导出设置->重置所有设置,选择重置到默认设置,之后再重新配置你需要的格式规则。
内容的提问来源于stack exchange,提问作者jsureke




