github golang/vscode-go v0.17.0
Release 0.17.0

Go code debugging and code coverage support is getting better.

The extension will help you stay updated with the new Go releases.

New Features

  • Delve's call feature is now accessible. To use this feature, explicitly specify the call command. E.g. call myAwesomeFunc(). It is an experimental feature in Delve. Please see the current limitations. (Issue 100)
  • The extension checks the go official download site and notifies users of newly available Go versions. When a newer version is available,
    Go Update Available status bar item will appear. This feature is available only if go.useGoProxyToCheckForToolUpdates
    is set true. (Issue 483)
  • The new go.coverMode setting allows to use different coverage modes (atomic, count, set (default)). go.coverShowCounts,
    go.coverageDecorator.{coveredBorderColor, uncoveredBorderColor} were newly added. We are still investigating better ways to visualize the count coverage data; feedback and contribution is welcome! (Issue 256,


  • Expands '~' in the cwd attribute of the launch configuration. (Issue 116)
  • Debug config's showGlobalVariables is disabled by default, and this change improves speed. You can still inspect the global
    variables by registering them in the WATCH section, or by configuring showGlobalVariables in launch.json. (Issue 138)
  • gofumpt, gofumports is added to recognized formatters list. (Issue 587)
  • Automatically restarts the language server if go.toolsEnvVars configuration is changed. (CL 254370)
  • Reports go env failures. (Issue 555)


  • Fixed to use absolute file paths in error messages appearing in the DEBUG OUTPUT. This allows VS Code to locate the correct files.
    (Issue 456)
  • Fixed handling of absolute file paths in coverage profile, on windows. (Issue 553)
  • Changed to pass GOROOT when invoking the gopkgs tool so gopkgs continues to work with different go versions without being recompiled. (CL 254137)
  • Fixed to provide explicit directory for running go list and go version. (Issue 610,
    CL 253600, 253602)
  • Fixed to trigger extension activation when commands for diagnostics, such as Go: Locate Configured Go Tools are invoked. (Issue 457)
  • Fixed to prepend GOROOT/bin to integrated terminal's PATH environment variable when go.goroot is set on OS X. (Issue 544)
  • Fixed to correctly apply environment variables setting read from envFile in the launch configuration. We reworked how the environment variables configuration is processed during this cycle. Now the extension processes the envFile attribute instead of asking the debug adapter process to read the specified envFile. (Issue 452)
  • Disabled go.installDependenciesWhenBuilding by default. When this is enabled, the extension runs go commands with -i, which is no longer recommended with recent versions of Go. (Issue 568)
  • Fixed a bug where we are not sending back 'configuration done' response. (Issue eclipse-theia/theia#8455, CL 254959)


Code Health

  • Removed the obsolete string-type coverageDecorator support. (Issue 519)
  • When gopls integration tests fail, tests print the observed gopls traces to help debugging.

Experimental Features

  • We plan to delegate computation of various run test CodeLenses to gopls. This experimental feature can be enabled with the following setting:

    "go.useLanguageServer": true,
    "gopls": {
    "codelens": { "test": true }


    Thank you for your contribution, @suzmue, @pjweinbgo, @ekulabuhov, @stamblerre, @tpbg, @FiloSottile, @findleyr, @quoctruong, @polinasok, @hyangah!

12 months ago