如何合理配置VS Code/Go扩展以保留switch/case自定义缩进格式?
问题解答
首先要明确:Go官方的格式化工具(包括gofmt、gofumpt、goimports)都是严格遵循Go官方代码风格规范的,其中switch语句的case关键字要求与switch的左大括号对齐,不允许额外缩进——这是工具的内置规则,没有常规配置项可以修改,所以你尝试的这些工具都会自动移除case前的额外空格。
如果一定要保留你自定义的case缩进格式,唯一的合理方案是关闭VSCode中Go扩展的自动格式化功能,手动维护代码格式:
- 打开VSCode设置(快捷键
Ctrl+,) - 搜索
go.formatOnSave,取消勾选该选项,这样保存文件时不会自动触发格式化 - 若需要对其他代码进行格式化,可以手动选中目标代码片段,右键选择「格式化选定内容」,但注意不要选中switch的case部分,否则还是会被修正
如果希望继续使用自动格式化功能,就需要遵循Go官方的代码风格,接受case与switch左大括号对齐的格式——这也是Go语言强调代码风格一致性的设计初衷。
内容的提问来源于stack exchange,提问作者JJ F
相关产品推荐
相关产品推荐

