This release contains initial support for standalone packages and package renaming. Please see below for more details.
We are also changing our release policy to better align with semver.
Support changes
This version of gopls contains changes to our release policy, deprecates support for some older Go versions, and deprecates support for several experimental features.
New release policy
As described in golang/go#55267, we are tightening our release policy to better follow semver, increase stability, and reduce release-related toil. Significant new features will only be introduced in *.*.0 patch versions, and subsequent patch releases will consist only of bugfixes. For example, this version (v0.10.0) introduces several new features, described below. Subsequent v0.10.* releases will contain only bugfixes.
Final support for Go 1.13-1.15
Consistent with the above release policy and our stated support window, the v0.10.* minor version will be the final set of releases to support being used with Go 1.13-1.15. See golang/go#52982 for details.
Gopls will pop up a warning if it resolves a version of the go command that is older than 1.16. Starting with gopls@v0.11.0, gopls will cease to function when used with a go command with a version older than 1.16.
Deprecated experimental features
The following experimental features are deprecated, and will be removed in gopls@v0.11.0:
experimentalWorkspaceModulegolang/go#52897go.work files. See our documentation for information on how to use go.work files to work on multiple modules.
Gopls now recognizes certain files as "standalone main packages", meaning they should be interpreted as main packages consisting of a single file. To do this, gopls looks for packages named main containing a single build constraint that matches one of the tags configured by the new standaloneTags setting.
This enables cross references and other features when working in a file such as the example below that contains a //go:build ignore build constraint.
To rename a package, initiate a rename request on the package clause of a file in the package:
When this renaming is applied, gopls will adjust other package files accordingly, rename the package directory, and update import paths referencing the current package or any nested package in the renamed directory.
Method information in hover
Hovering over a type now shows a summary of its methods.
... (truncated)
Commits
7261b32 gopls/internal/regtest: fix goimports on windows when using vendoring
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps golang.org/x/tools from 0.9.3 to 0.10.0.
Release notes
Sourced from golang.org/x/tools's releases.
... (truncated)
Commits
7261b32
gopls/internal/regtest: fix goimports on windows when using vendoring41e4e56
gopls/internal/lsp/source/completion: ensuring completion completenessac29460
go/ssa: fix bug in writeSignature on external functions3b62e7e
go/ssa: use core type within (*builder).receiverf394d45
gopls/internal/lsp/cache: compute xrefs and methodsets asynchronously27dbf85
go.mod: update golang.org/x dependenciesc6c9830
go/types/objectpath: memoize scope lookup in objectpath.Encoder0245e1d
gopls/internal/regtest/codelens: set GOWORK=off for go mod vendor85be888
go/analysis/passes/defers: add analyser for defer mistakec43232f
cmd/digraph: improve examples using go list, modDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)