Date: 2026-10-20
Full Changelog: v0.56.1...v0.58.0
Milestone: https://github.com/golang/vscode-go/issues?q=milestone%3Av0.58.0
- vscode-go now supports v3.18 of the Language Server Protocol.
- Improved diagnostic deduplication across
gopls, build, vet, and linters (#3511):- Deduplication now checks start position (line and column), and severity level.
- Diagnostics on different columns of the same line can now coexist.
- The "Go: Generate Interface Stubs" command (
go.impl.cursor) is now powered bygoplsby default using interactive refactoring. Place your cursor inside the target type declaration (e.g.type Foo struct), andgoplswill prompt for the interface to implement and insert the method stubs after the type declaration.
The previous implementation remains available via the "Go: Generate Interface Stubs (legacy)" command (go.impl.cursor.legacy), which inserts method stubs directly at the cursor location. - The "Go: Add Tags to Struct Fields" and "Go: Remove Tags From Struct Fields" commands now prompt for the tags via
goplsunless tags or options are configured ingo.addTagsorgo.removeTags. The default values ofgo.addTags(previouslyjsontags withomitempty) have been removed, andgo.removeTagsno longer removes all tags by default. IfpromptForTagsis true, the settings are ignored andgoplsalways prompts. (#4070) - Replaced the
wmic-based Windows process picker for attach debugging with the native@vscode/win32-app-container-tokensmodule, as thewmictool itself is deprecated on Windows (#3687). - Language client trace logging is now integrated with VS Code's
LogOutputChannellog level system. To view verbose trace logs in thegoplsoutput channel, in addition to setting"go.trace.server": "verbose", you must also set thegoplschannel log level toTrace(using theDeveloper: Set Log Level...command or channel settings).