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 ifgo.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 thecount
coverage data; feedback and contribution is welcome! (Issue 256,
594)
Enhancement
- Expands
'~'
in thecwd
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 theWATCH
section, or by configuringshowGlobalVariables
inlaunch.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)
Fixes
- 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 thegopkgs
tool sogopkgs
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 whengo.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 theenvFile
attribute instead of asking the debug adapter process to read the specifiedenvFile
. (Issue 452) - Disabled
go.installDependenciesWhenBuilding
by default. When this is enabled, the extension runsgo
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)
Documentation
- Added new documentation about switching go versions, and settings for standard library development.
- Improved debugging instruction and contribution guide. Enhanced automated settings documentation generation.
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 togopls
. This experimental feature can be enabled with the following setting:
"go.useLanguageServer": true,
"gopls": {
"codelens": { "test": true }
}
Thanks
Thank you for your contribution, @suzmue, @pjweinbgo, @ekulabuhov, @stamblerre, @tpbg, @FiloSottile, @findleyr, @quoctruong, @polinasok, @hyangah!