Standard library development

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.

{
    // Use the local go tool. This needs to be built with make.bash.
    "go.alternateTools": {
        "go": "~/godev/bin/go"
    },
    // 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 accordingly.

You can add .vscode to .git/info/exclude to avoid risking checking settings.json into git.

If you see an “inconsistent vendoring” error, please report it at golang/go#40250.

See also golang/go#38603.