The gopls command is an LSP server for Go. The Language Server Protocol
2024-04-21 17:31:33 by Thomas Klausner | Files touched by this commit (3) | |
Log message:
gopls: update to 0.15.3.
This release fixes the following regressions in gopls@v0.15.0+:
golang/go#66490: occasional crashes when the imports cache is refreshed.
golang/go#66425: spurious import errors in multi-root workspaces that have \
go.work replace directives.
golang/go#66636: a crash in analysis when the go.mod contains a patch \
version and gopls was built with Go 1.20 or earlier.
golang/go#66677: silent breakage when the go.mod file contains Go 1.22.x, \
and gopls was built with Go 1.21.x.
golang/go#66731: a rare crash when diagnostics are erroneously positioned \
outside the file due to malformed syntax.
golang/go#66647: a performance regression due to unnecessary reloading \
following "workspace/didChangeConfiguration" notifications. Under some \
not-yet-understood conditions, an apparent VS Code bug causes \
didChangeConfiguration notifications on every keystroke. With the zero-config \
logic of gopls@v0.15.0+, any didChangeConfiguration notification causes gopls to \
re-evaluate (and reload) the set of builds it tracks. With the v0.15.3 release, \
gopls verifies that configuration actually changed. Special thanks to \
@gordallott for working with us to track down this bug.
|
2024-04-05 21:14:14 by Benny Siegert | Files touched by this commit (161) | |
Log message:
Revbump all Go packages after go121 update
|
2024-03-16 18:13:20 by Benny Siegert | Files touched by this commit (3) | |
Log message:
gopls: update to 0.15.2
This release fixes the following regressions in gopls@v0.15.0+.
- a crash when encountering a test file excluded via build tags, which also
contained an invalid import of a main package. This could occur in a
tools_test.go file implementing the common pattern for tool dependencies.
- spurious import errors in multi-root workspaces. In some scenarios, the new
zero-config logic added in gopls@v0.15.0 resulted in inaccurate errors about
missing imports. This could occur when module A has a local replace of module
B, and A and B are open as a separate workspace folders.
- a crash when working on modules with a go directive of the form go a.b.c,
when gopls was compiled with Go 1.20 or earlier.
- a crash when SignatureHelp is cancelled (found via telemetry)
- a crash in references when one of the package files is missing a package
declaration (found via telemetry)
These last two crashes are worth highlighting. Both were found via the (off by
default) automated crash reporting added in gopls@v0.15.0. Both were unlikely
to get reported via GitHub issues, because they won't happen frequently enough
for most LSP clients to notify the user. This is a perfect example of how
telemetry can help us deliver a more reliable product than would be possible
without automated reporting.
|
2024-03-03 12:39:22 by Thomas Klausner | Files touched by this commit (3) | |
Log message:
gopls: update to 0.15.1.
0.15.1
This release fixes golang/go#65952, a crash in document highlighting when the \
cursor is in a return value for a function that has no results, such as the \
following example:
func f() { // <-- no results
return 0| // <-- cursor at '|'
}
Thanks very much to @patrickpichler who both reported and fixed this bug!
We're hopeful that once Go 1.23 is released, the opt-in automated crash \
reporting added in gopls v0.15.0 will increase the likelihood that these types \
of crashes are caught before they are released.
0.15.0
This release introduces "zero config" gopls workspaces, which is a set \
of heuristics allowing gopls to Do The Right Thing when you open a Go file. We \
believe this addresses two of the largest pain points we hear about from our \
users: difficulty configuring multi-module repositories, and working on multiple \
GOOS/GOARCH combinations. However, this is a large change to the way gopls \
models your workspace, and the dynamic loading/unloading of builds may be \
surprising in some cases. Your feedback on this new feature is greatly \
appreciated. See below for more details.
New Features
Simpler workspace configuration and improved build tag support
Preview refactoring edits
Analysis & diagnostics
Automated crash reporting (off by default)
Housekeeping
and Bug Fixes.
|
2024-02-07 15:51:04 by Benny Siegert | Files touched by this commit (156) | |
Log message:
Revbump all Go packages after go121 update
|
2024-01-10 20:14:43 by Benny Siegert | Files touched by this commit (152) | |
Log message:
Revbump all Go packages after go121 update
|
2023-12-05 20:46:19 by Benny Siegert | Files touched by this commit (146) | |
Log message:
Revbump all Go packages after go121 update
|
2023-11-19 14:34:00 by Thomas Klausner | Files touched by this commit (3) | |
Log message:
gopls: update to 0.14.2.
This release contains just one change: an upgrade of x/telemetry
to pick up support for the "local" telemetry mode (golang/go#63832).
Previously, when the telemetry mode was "off" (the default), counter
data would not be uploaded, but would be written to the
os.UserConfigDir()/go/telemetry/local directory of the local file
system. We heard from a few users that, as a matter of policy within
their organization, they need a way to prevent even this local data
from being written. With this release, running gotelemetry off will
stop gopls from writing this local counter data. Note that the
os.UserConfigDir()/go/telemetry/mode file must be written to record
the "off" state.
The new default telemetry mode is "local", which behaves the same
way as "off" did before. In "local" mode, counter data is written
to the local file system, but not uploaded. Local data can be
inspected with the gotelemetry view command.
See golang/go#63832 for more details. Thanks again for helping us
support transparent telemetry in gopls. As described in the v0.14.0
release notes, we are confident that this data will help us produce
a better, faster, more reliable product. In fact this is already
happening.
|