github golang/tools gopls/v0.9.2

latest releases: v0.27.0, v0.26.0, cmd/gorename/v0.1.0-deprecated...
2 years ago

This release contains many bug fixes, particularly related to problems that would require restarting gopls.

Note about network usage: among these fixes was a change to allow network usage when reloading the workspace. Reloading occurs when a go.mod, go.sum, or go.work file changes on disk. In the past, gopls would only allow network during the first workspace load. This resulted in confusing behavior when, for example, a new dependency is added to a go.mod file and gopls could not load it, but loading succeeded on restart. See #54069 for more details.

Configuration changes

directoryFilters at arbitrary depth

The "directoryFilters" setting now supports excluding directories at arbitrary depth, using the ** operator. (note that for v0.9.2, the default value for this setting is still ["-node_modules]". In the next release, this will change to ["-**/node_modules"]).

Bug fixes and Performance improvements...

This release contains the following notable bug fixes / performance improvements:

  • Additional change optimization - Following up on the work to optimize change processing from the v0.9.0 release, this release contains additional optimizations that result in around 50% faster change processing (measured via edits in the Kubernetes repo).
  • Fix for a long-standing memory leak - #53780 fixed a long-standing bug that caused gopls to hold on to its initial state, gradually leaking memory as state changed during the editing session.
  • Fewer restarts - This release contains many fixes for cache-invalidation bugs that would cause gopls to get confused and require restarting. Additionally, see the note at top about enabling the network when reloading the workspace. We believe we are close to our goal that restarting gopls should never be required to fix workspace errors. If you encounter such a bug, please file an issue!

A full list of all issues fixed can be found in the gopls/v0.9.2 milestone.
To report a new problem, please file a new issue at https://go.dev/issues/new.

Thank you to our contributors!

Thank you for your contribution, @alandonovan, @antoineco, @dle8, @euroelessar, @findleyr, @hyangah, @jamalc, @mssdvd, @pjweinbgo, @rentziass, and @suzmue!

What's next

The next planned gopls release is v0.10.0. We’re excited about features and improvements on the horizon, for example:

  • Package renaming (#41567)
  • More accurate static-analysis (#48738)
  • Improved support for the new 1.19 doc comment format (#54260)
  • Making it easier to work with go.work files (many issues, for example #53880 or #54261)

Don't miss a new tools release

NewReleases is sending notifications on new releases.