v0.41.0 - 14 Feb, 2024
This release introduces significant updates to the extension's UI.
We also want to share the news that the gopls v0.15 release enhances the multi-module workspace experience and improves build tag handling.
For a detailed list of changes, refer to the complete commit history.
Changes
Gopls v0.15.0 and Workspace Configuration
- The gopls v0.15 introduces a significant change in its internal workspace data model. Known as "zero configuration" gopls,
gopls
can automatically determines workspace configurations such as Go module boundaries and necessary GOOS/GOARCH build tags for open Go files. This eliminates the need for users to align the VS Code workspace root folders with the Go module root folder. - For more details and additional feature updates, refer to the gopls v0.15.0 release notes. The extension's settings have been updated to align with gopls v0.15.0 settings.
UI Updates
- A new language status bar is added, visible when working on Go-related files. The Go status bar, which displays the selected Go version and the gopls status, is now located at the bottom right of the window and is visible only when Go files are open.
- The "Go" and "Go Debug" output channels are now primarily used for logging extension activities such as dependency tool installation, invocation, and debug logging. Use the
"Developer: Set Log Level..."
command to adjust the logging level. Thego.logging.level
setting is deprecated in favor of this new logging mechanism. - The
"Go: Locate Configured Go Tools"
command now opens an untitled file and dumps the tools information there, instead of printing it in the "Go" output channel. This change allows users to inspect and edit the output easily before sharing it in their issue report.
Debugging
- Remote debugging now defaults to using delve DAP. The legacy debug adapter will be removed in the next release cycle.
- Delve 1.22.0 introduces new options to display 'pprof' labels and use concise symbol and stack presentation. Update delve to the latest version using the
"Go: Install/Update Tools"
command.
Tools
- For new users, the extension will automatically install important tools (
gopls
and an optionally selected extra lint tool such asstaticcheck
orgolangci-lint
) if they are missing, usinggo install
commands. Any installation failures will be surfaced in the language status bar and the "Go" output channel. - The extension does not require
dlv
installation until the debug feature is invoked. - The extension now installs
vscgo
, an optional tool used to update the Go telemetry counters. This tool is installed in the extension's directory.
Telemetry
- The Go telemetry now measures activation latency. (CL 549244)
Fixes
- The extension now recognizes idx as a Web IDE. (CL 559895)
- The deprecated
web-request
has been replaced withnode-fetch@v2
. (Issue 2995)
Development Process Updates
- The repository layout has been updated with the extension code moved to the
extension/
directory. See Issue 3122 for more details. - The extension release workflow has been moved to Google Cloud Build.