Releases: golang/vscode-go
Release 0.19.1
v0.19.1 - 9th Dec, 2020
A list of all issues and changes can be found in the v0.19.1 milestone.
Fixes
- Fixed
Run without Debuggingfor Windows. This was a regression found in v0.19.0 (Issue 918). - Fixed snippets that used the reserved keyword ('var') as variable names (Issue 969).
- Fixed a file path expansion bug in subtest failure messages (Issue 956).
- Fixed unhandled promise rejection error in debug adapter (Issue 982).
Enhancements
- Disabled the experimental
godlvdapdebug configuration from the stable version. It is still available in Go Nightly (Issue 960). - Enabled user survey (Issue 910).
Thanks
Thank you for your contribution, @suzmue, @RomanKornev, @hyangah!
Release 0.19.0
v0.19.0 - 25 Nov, 2020
A list of all issues and changes can be found in the v0.19.0 milestone.
Community
- Go Nightly users are encouraged to discuss issues and share feedback in the #vscode-go-nightly slack channel as well as the newly created Go Nightly mailing list (Issue 817)
- All experiments have been turned on for Go nightly (Issue 818)
Enhancements
- Added a snippet for TestMain (Issue 629)
- Added
lispcase,pascalcaseandkeepas transform variants for go.addTags (Issue 906, 936) - Added support for
gomodifytags's --template flag (Issue 826) - Language Server
- Upgraded to the latest vscode-languageclient pre-release (Issue 42148)
- Debugging
- package.json: activate extension onDebugInitialConfigurations (Issue 131)
Fixes
- Fixed test streaming output handling to correctly add -json flag (Issue 471)
- Fixed bug that unnecessarily buffered test output (Issue 917)
- Fixed a bug that occurred when choosing a new Go environment using the file picker (Issue 868, 864)
- Hide running test StatusBarItem after cancelling tests
- Tool Installation
- Filter out unsupported document types to improve VS Code Live Share experience (Issue 605)
- Fixed language server survey computation error
- Debugging
- No longer shows a warning about editing Go files if there is no Go Debug Session running.
- Now removes user set '--gcflags' before passing the program to the debugger, since the debugger adds its own flags before building resulting in an error (Issue 117)
- Fixed bug where the working directory passed in by the user is ignored (Issue 918)
Code Health
- Debugging
- Improved the extension contributor experience by renaming the test fixtures folder to avoid errors being shown for these files
- Language Server Tests
- Adjusted home directory used in gerrit CI since recent changes in kokoro were restricting access (Issue 833)
- Updated Github workflows actions/setup-go to v2
- Restructured the goTest code to be more readable and easier to test
- Continued to improve the gopls settings documentation generator (Issue 197)
Thanks
Thank you for your contribution, @pofl, @hyangah, @perrito666, @pjweinbgo, @quoctruong, @stamblerre, @skaldesh, and @suzmue!
Release 0.18.1
v0.18.1 - 30th Oct, 2020
A list of all issues and changes can be found in the v0.18.1 milestone.
Enhancement
- New
Go: extract language server logs to editorcommand was added (CL 263526).
Fixes
- Fixed a bug that hid the Go status bar when there is no active text editor (Issue 831).
Thanks
Thank you for your contributions, @suzmue, @pjweinbgo!
🌟 See also v0.18.0 Release Note.
Release 0.18.0
v0.18.0 - 23rd Oct, 2020
Unified Go status UI ⚡, many debugger feature improvements, and LSP 3.16 features! A list of all issues fixed with this release can be found in the v0.18.0 milestone.
New Features
- The new Go status bar provides a menu to manage the go version, open the gopls trace, open the
go.modfile, and more. The oldGo Modulesstatus bar was removed in favor of this new unified status bar. See VS Code Go UI documentation to learn more about this. - New
Go: Toggle gc detailscommand toggles the display of compiler optimization choice for the open Go source file (CL 256658). - Upgraded LSP to
3.16. Users of recentgoplscan access new features such asCall hierarchyandSemantic tokens.
Enhancement
- Debugging:
- Language Server Client: sends
goplsconfig as LSP initialization options for correct workspace symbols computation (CL 259138). - Snippets: adds a placeholder for the
forstatement snippet (Issue 734). - Excludes
vendordirectories fromgo.inferGopathdisable mechanism (Issue 301). - New
go.logging.levelsetting allows extra logging to help debugging extension issues (CL 256557). - For Nightly extension users,
Go: Show Survey ConfigandGo: Reset Survey Configcommands are available.
Fixes
- Fixed the bug that caused the debug adapter to leave bogus null items in the map type variable presentation (Issue 199).
- Fixed several debug adapter bugs that caused remote debug to hang (Issue 740, 766, 761, 764).
- Restored the correct handling of language server configuration change when users opt for enabling language server and installing
gopls. (CL 258997). - Fixed a diagnostics error visualization issue when multiple files with errors are open (Issue 743).
- Changed the dependency tool installation to use the
gocommand chosen from the currentGOROOT/bin. This helps avoid using a different version ofgocommand forasdfordirenvusers (Issue 757).
Documentation
- Documented the current limitation of symlink support in debugging (CL 257204), improved the instruction for CLI application debugging (CL 259677), and fixed syntax errors in example task configuration snippets (CL 259077).
Code Health
- Added an initial set of tests for debug adapters (Issue 137). We will keep working to improve our test coverage.
Thanks
Thank you for your contributions, @suzmue, @vologab, @amitlevy21, @danielhelfand, @egonk, @quoctruong, @polinasok, @pjweinbgo, @stamblerre, @hyangah!
Release 0.17.2
v0.17.2 - 29th Sep, 2020
Fixes
- Fixed a regression caused by the change for Issue 679.
Ifgois not found fromPATHavailable to the extension, the extension tries
a couple of well-known default locations to find thegobinary. In this case, we
need to mutatePATHso other tools includinggoplsordlvcan choose the
same go version. (Issue 713).
Release 0.17.1
v0.17.1 - 28th Sep, 2020
Enhancement
- Mutate the
PATH/Pathenvironment variable only if users
explicitly configure to select the go command usinggo.goroot,
go.alternateTools, orGo: Choose Go Environmentmenu.
(Issue 679) - Includes sanitized gopls crash traces in the automated gopls crash report.
(CL 256878)
Fixes
- Changed the default of
go.coverModeto bedefault. (Issue 666) - Fixed a missing promise reject when go is not found. (Issue 660)
Thank you for reporting issues!
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
callcommand. 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 Availablestatus bar item will appear. This feature is available only ifgo.useGoProxyToCheckForToolUpdates
is set true. (Issue 483) - The new
go.coverModesetting 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 thecountcoverage data; feedback and contribution is welcome! (Issue 256,
594)
Enhancement
- Expands
'~'in thecwdattribute of the launch configuration. (Issue 116) - Debug config's
showGlobalVariablesis disabled by default, and this change improves speed. You can still inspect the global
variables by registering them in theWATCHsection, or by configuringshowGlobalVariablesinlaunch.json. (Issue 138) gofumpt,gofumportsis added to recognized formatters list. (Issue 587)- Automatically restarts the language server if
go.toolsEnvVarsconfiguration is changed. (CL 254370) - Reports
go envfailures. (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
GOROOTwhen invoking thegopkgstool sogopkgscontinues 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 Toolsare invoked. (Issue 457) - Fixed to prepend
GOROOT/binto integrated terminal's PATH environment variable whengo.gorootis set on OS X. (Issue 544) - Fixed to correctly apply environment variables setting read from
envFilein the launch configuration. We reworked how the environment variables configuration is processed during this cycle. Now the extension processes theenvFileattribute instead of asking the debug adapter process to read the specifiedenvFile. (Issue 452) - Disabled
go.installDependenciesWhenBuildingby default. When this is enabled, the extension runsgocommands 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 testCodeLenses 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!
Release 0.16.2
Fixed
- Fixed the compile error message parsing bug that prevented correct file name expansion in test output. (Issue 522).
- Fixed the regression that caused to run tests in the local directory mode and
result in more verbose output than the package list mode. (Issue 528). - Fixed
"go.alternateTools"settings to accept any tool names without
settings.json diagnostics warning. (Issue 526)
Release 0.16.1
Fixed
- Fixed the bug that made test output verbose by default (Issue 471).
- Fixed the extension host crash bug due to a process-wide uncaught exception handler accidentally installed along with the inlined debug adapter. This crash bug also caused connection drops when used with the VS Code Remote extension (Issue 467, 469).
- Readded the predefined variable resolution support for
go.gorootandgo.toolsEnvVars(Issue 464, 413).
Release 0.16.0
v0.16.0 - 3rd Aug, 2020
This version requires VS Code 1.46+.
Older versions of VS Code will not receive updates any more.
New Features
- Users can select/install a different version of Go with
Go: Choose Go Environmentcommand.
When clicking theGostatus bar that displays the currently active Go version, users will be prompted with the list of Go versions installed locally or available for download. This feature was built based on thegolang.org/dltools. The selected Go version applies to the workspace, takes precedence over the system default or the"go.goroot"and"go.alternateTools"settings, and persists across sessions. You can clear the choice by selecting theClear Selectionitem.
(Issue 253) - When the Go version changes, the extension prepends
$GOROOT/binto thePATHorPathenvironment variable which then applies the change to the integrated terminal windows. - This version includes an experimental version of the new Debug Adapter that uses Delve's native DAP implementation. It currently supports
launchtype requests indebugortestmode. This is still in the early stages and requiresdlvbuilt from its unreleased, master branch. Subscribe to golang/vscode-go#23 for updates.
Enhancement
- Bundles the extension using webpack, which reduced the extension size (4.7MB -> 1MB) and the extension loading overhead (3.4K files -> 3 files) (Issue 53).
Go: Apply Cover Profileapplies code coverage for multiple packages (CL 238697). We fixed bugs in processing coverage profiles on Windows.- Suggests the official Go download page when no
gotool is found. - Utilizes the
GOMODCACHEenvironment variable, introduced in Go 1.15. - Prevents multiple debug sessions from launching (Issue 109).
- Streams test output when tests run with the
-voption.
This feature requires 1.14 or newer versions of Go (Issue 316). - Sets
additionalPropertiestofalsefor the settings that don't expect more properties. This allows VS Code to handle these settings better in its new settings GUI (Issue 284). Go: Locate Configured Go Toolsincludesgo envresults (Issue 195).- Avoids prompting users to switch the default format tool in modules mode if users enable the language server.
Fixed
- Fixed the
PATHenvironment variable adjustment when users use a wrapper as an alternate tool forgo(CL 239697). - Fixed a bug in test output processing, which prevented VS code from linking test log messages with locations in the source file.
- Fixed a
gocode-gomodinstallation bug whenGOPATHincludes multiple directories (Issue 368). - Avoids attempting to kill already terminated processes (Issue 334).
- Fixed
godefto locate standard packages correctly by passing theGOROOTenvironment variable. - Fixed a
golangci-lintintegration bug that prevented displaying the lint results correctly when linters likenolintlintare enabled (Issue 411). - Fixed lost test function name arguments when running
Go: Test Previous(Issue 269).
Code Health
- Many enhancements to improve test reliability and test coverage were made during this dev cycle.
- TryBot is enabled, and the test results are posted to Gerrit CL. Currently, only the internal team members can see the details of the test results, but we will continue working to make them public.
- Windows tests are now fixed and enabled in GitHub Action-based CI.
- Refactored code shared by the extension and the debug adapters to prevent accidental debug adapter breakages.
- Updated
json-rpc2andlodashto address vulnerability reports fromnpm audit.
Thanks
Thank you for your contribution, fujimoto kyosuke, OneOfOne, Aditya Thakral, Oleg Butuzov, Rebecca Stambler, Peter Weinberger, Brayden Cloud, Eli Bendersky, Robert Findley, Hana Kim!