Gopls release v0.22.0 (forthcoming)

Configuration changes

  • Asking for references while hovering over the name of a required module in a go.mod file will show all the imports of that module in the main module (the go.mod’s module).

Web-based features

Editing features

Analysis features

atomictypes analyzer

The new atomictypes analyzer suggests replacing the primitive sync/atomic functions with the strongly typed atomic wrapper types introduced in Go1.19 (e.g. atomic.Int32). It refactors declarations like var x int32 to var x atomic.Int32 and updates all corresponding call sites from atomic.AddInt32(&x, 1) to method calls like x.Add(1).

fieldassignment analyzer

The fieldassignment analyzer, which reports diagnostics about memory layout and was disabled in v0.17.0, has been restored. It is disabled by default.

writestring analyzer

The new writestring analyzer detects inefficient string concatenation in uses of WriteString, of the form WriteString(a+b), and offers to replace them with WriteString(a); WriteString(b).

waitgroup modernizer renamed to waitgroupgo

Previously there were two analyzers named waitgroup: an analyzer that checks for misuses of sync.WaitGroup, and a modernizer that simplifies goroutine management with sync.WaitGroup. We have renamed the modernizer to waitgroupgo.

Code transformation features

$feature

https://go.dev/issue#xxxxx


The source files for this documentation can be found beneath golang.org/x/tools/gopls/doc.