I'm using vscode
with Go
extensions to edit golang
source code. Each time I want to format code, I have to press Ctrl-Shift-i
on linux
, Shift-Alt-F
on Windows
, or Ctrl-Shift-p
and type format
. Is it possible to set format on save, that is, when I press ctrl-s
, it format the code automatically using go.fmt
(or something alike)?
You should install this plugin: https://github.com/golang/vscode-go. One of the options is to set "auto format" on save: go.formatOnSave": false
. It uses the Golang tooling for formatting.
For me, none of the answers worked. My Go version is 1.17.1, VSCode version is 1.60.1 and I'm using Linux Pop!_os.
After some digging online found this in the official VSCode documentation for Go. https://code.visualstudio.com/docs/languages/go#_formatting
My settings.json looks like this
"[go]": {
"editor.insertSpaces": true,
"editor.formatOnSave": true,
"editor.defaultFormatter": "golang.go"
},
Note: You need to install the required extensions for the go lang in VS code. Check the bottom left bar after opening a *.go file and you should see the go version. If you see an exclamation icon then click on it and install the suggested extensions.
From my visual code version, i cannot use config go.formatOnSave": false.
Then I can turn them off in settings as below:
- Build (Turn off using go.buildOnSave setting)
- Lint (Turn off using go.lintOnSave setting)
- Vet (Turn off using go.vetOnSave setting)
- Format (Turn off by adding the below in your settings):
"[go]": { "editor.formatOnSave": false }
You should install this plugin: https://github.com/golang/vscode-go. One of the options is to set "auto format" on save: go.formatOnSave": false
. It uses the Golang tooling for formatting.
true
instead of false
. –
Amazonas For me the followed settings worked. I disabled the annoying import refactoring.
"[go]": {
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": false
},
}
This is the settings that worked for me
"[go]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "golang.go",
"editor.codeActionsOnSave": {
"source.organizeImports": "always"
}
}
Do not miss the "editor.defaultFormatter": "golang.go",
If you work with other languages and use Prettier, you can set golang.go
for Golang and esbenp.prettier-vscode
for anything else.
"editor.formatOnSave": true,
"[*]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[go]": {
"editor.defaultFormatter": "golang.go"
},
© 2022 - 2024 — McMap. All rights reserved.
true
instead offalse
. – Amazonas