vscode-go and gopls can be used for developing the standard library, but require configuration.
First, you must open the src/
folder in VS Code, not the Go tree root. (See golang/go#32394.)
Then, you need to configure the workspace, by placing the following in src/.vscode/settings.json
. Command Palette -> Preferences: Open Workspace Settings (JSON)
will open the setting file.
{ // Use the local go tool. This needs to be built with make.bash. "go.alternateTools": { "go": "~/godev/bin/go" }, // // Below is optional. // // Build a separate set of tools. For golang/vscode-go#294. "go.toolsGopath": "~/.vscode/godev", // Don't reformat HTML files since we have a custom style. "html.format.enable": false }
The above assumes the Go tree is checked out at ~/godev
. If your Go tree is somewhere else, modify go.alternateTools.go
to point to the go binary accordingly. Many underlying tools including gopls
invoke the go command (go list
, etc), so we assume the binary isn't completely broken.
You can add .vscode
to .git/info/exclude
to avoid risking checking settings.json
into git.
The Go language server (gopls
) works for developing the standard library. To enable it, please read our gopls
documentation.
If you see an “inconsistent vendoring” error, please report it at golang/go#40250.
See also golang/go#38603.