我正在使用
vscode
和 Go
扩展来编辑 golang
源代码。每次我想要格式化代码时,我都必须按 Ctrl-Shift-i
上的 linux
,按 Shift-Alt-F
上的 Windows
,或按 Ctrl-Shift-p
并输入 format
。是否可以在保存时设置格式,也就是说,当我按 ctrl-s
时,它会使用 go.fmt
(或类似的东西)自动格式化代码?
对我来说,所有答案都不起作用。我的 Go 版本是 1.17.1,VSCode 版本是 1.60.1,我使用的是 Linux Pop!_os。
在网上进行一些挖掘后,在 Go 的官方 VSCode 文档中发现了这一点。 https://code.visualstudio.com/docs/languages/go#_formatting
我的settings.json看起来像这样
"[go]": {
"editor.insertSpaces": true,
"editor.formatOnSave": true,
"editor.defaultFormatter": "golang.go"
},
注意:您需要在 VS Code 中安装 go lang 所需的扩展。打开 *.go 文件后检查左下栏,您应该会看到 go 版本。如果您看到感叹号图标,请单击它并安装建议的扩展。
从我的可视化代码版本来看,我无法使用配置 go.formatOnSave": false。
然后我可以在设置中将其关闭,如下所示:
"[go]": { "editor.formatOnSave": false }
您应该安装此插件:https://github.com/golang/vscode-go。选项之一是在保存时设置“自动格式”:
go.formatOnSave": false
。它使用 Golang 工具进行格式化。
对我来说,以下设置有效。我禁用了烦人的导入重构。
"[go]": {
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": false
},
}
这是对我有用的设置
"[go]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "golang.go",
"editor.codeActionsOnSave": {
"source.organizeImports": "always"
}
}
不要错过
"editor.defaultFormatter": "golang.go",