govim is a Go development plugin for Vim8, written in Go
BSD-3-CLAUSE License
Full Changelog: https://github.com/govim/govim/compare/v0.0.34...v0.0.35
Published by myitcv over 3 years ago
The main new features in this release are the addition of a config option ExperimentalWorkspaceModule
, which allows a user to opt into the experimental support for multi-module workspaces provided by gopls
, and support for quickfix code actions that return commands (the canonical example here being the go get
command returned for a code action to fix missing require directives).
Thanks to @leitzler for contributing towards this release.
None.
gopls
changesNone
Published by myitcv over 3 years ago
The main new feature in this release is GOVIMGoTest
, which allows you to run tests based on the cursor position. See https://github.com/govim/govim/pull/974/commits/ed5f0e30574626634f9056fa8d0b4df83a89fa8e for more details.
You can also configure gopls
to use gofumpt
as the formatter. See https://github.com/govim/govim/pull/1005/commits/dac6f9c4621a9d88247c0236c898c02c61f00d94 for more details.
In Go 1.16, cmd/go
now defaults to -mod=readonly
for build commands. This means that go build
, go test
, go list
and other build commands will not run if changes are required to go.{mod,sum}
in order for the build to succeed. You first need to run go mod tidy
or an equivalent command to add the relevant requirements to go.{mod,sum}
. gopls
has followed suit by making the addition of requirements to a go.{mod,sum}
an explicit step. For some people this will be a welcome change. For others this might be something of a chore, for example when adding an import via unimported completions it can be argued the selection involves specifying a module and hence requiring a further manual step to add the module requirement is unnecessary. Whether go.{mod,sum}
changes are allowed is now controlled by ExperimentalAllowModfileModifications
. To ease the transition this defaults to "on". We will also be raising an issue with the gopls
team to discuss how to phase out use of this option, specifically in the context of operations that should arguably not require an additional module requirement step (the case of unimported completions is the most obvious).
Thanks to @leitzler, @bbrodriges and @mvdan for contributing towards this release.
None.
gopls
changesNone
Published by myitcv almost 4 years ago
Thanks to @leitzler, @tbruyelle and @akupila for contributing towards this release
None.
fzf
and other "finders" to be used as an interface for fuzzy workspace symbol search:GOVIMGCDetails
will toggle diagnostics that show Go compiler details such as escape analysis:GOVIMFillStruct
will tell gopls to fill the structure beneath the cursorgopls
changesNone
Published by myitcv over 4 years ago
Thanks to @tjcain, @leitzler and @stamblerre for contributing towards this release.
None
gopls
changesDetails in the comparison https://github.com/golang/tools/compare/63da46f3035e...2212a7e161a5
None
Published by myitcv over 4 years ago
Thanks to @leitzler, @stamblerre and @tjcain for contributing towards this release.
None
gopls
changesMost notable in this release is that gopls
now supports multiple concurrent clients (https://github.com/golang/go/issues/34111). For details see:
https://github.com/golang/tools/blob/63da46f3035e/gopls/doc/daemon.md
Other highlights include:
Here is the full list of gopls
changes since the last govim
release:
https://github.com/golang/tools/compare/61798d64f025...63da46f3035e
None
Published by myitcv over 4 years ago
None
None
gopls
changesIncludes a fix for unexpected parse mode
panic
The gopls
change above.
Published by myitcv over 4 years ago
Thanks to @leitzler and @findleyr for contributing towards this release.
None
Used to define the environment for a workspace. e.g. to use an alternative go.mod
file:
govim#config#Set("GoplsEnv", {"GOFLAGS": "-modfile=go.local.mod"})
gopls
changesPublished by myitcv over 4 years ago
Thanks to @leitzler, @cespare and @findleyr for contributing towards this release.
go.mod
files considerably more sanegopls
changesThe main focus of gopls
changes since the last govim
release has been stability and correctness. Thanks to @stamblerre and everyone who contributes to gopls
for the work that has gone into the ~360 commits over that time.
Published by myitcv almost 5 years ago
None
We incorrectly announced support for completion of unimported standard library packages in v0.0.25: the gopls
changes were in place, but the govim
config changes were not merged. That is now fixed in this release, and documented in the wiki.
Per https://github.com/govim/govim/issues/586#issuecomment-555424067, we unfortunately missed a gopls
bug in our govim
tests because the test in question was skipped pending the resolution of another gopls
bug! We are now tracking all of these version-related bugs under the umbrella of https://github.com/govim/govim/issues/591
Apologies, this meant we released a relatively unstable version of govim
.
Published by myitcv almost 5 years ago
As previously noted in https://github.com/govim/govim/issues/292#issuecomment-534042440:
Support for goimports -local
-like behaviour is still pending in https://github.com/govim/govim/pull/571
A big thank you to @leitzler for the work behind the suggested fixes support!
GOVIM_GOPLS_FLAGS
being usedNumerous bug fixes, most notably in gopls
(across a number of commits where we upgraded golang.org/x/tools
/ golang.org/x/tools/cmd/gopls
):
staticcheck
)Published by myitcv about 5 years ago
As of v0.0.24
, Vim version v8.1.1711
is required.
govim
, all other things being equalgopls
needs to show a message, show error messages using popupsPublished by myitcv about 5 years ago
As of v0.0.23
, govim
has a new module path: github.com/govim/govim
. Versions <= v0.0.22
use the module path github.com/myitcv/govim
.
The gopls
and x/tools
upgrades contain a significant number of improvements and bug fixes; the list of those is listed in the commits above.
Published by myitcv over 5 years ago
Major enhancements:
gopls
, if you have have signcolumn
set to either auto
, yes
or number
then you will get error indicators on the left of a window for lines which have errorsGOVIMStringFn
is a command that replaces buffer text with the result of applying a sequence of transformation functions. For example :GOVIMStringFn crypto/sha256.Sum256 encoding/hex.EncodeToString
. See the message of https://github.com/myitcv/govim/commit/73268b0a219c16fe5507068839279f622cd7e72c for more details.GOVIMRename
allows you to rename the identifier under the cursor. For now the scope of renames is limited to the current package (this is a gopls
limitation, like GOVIMReferences
)Breaking changes:
Notable bug fixes/other:
gopls
/deps updates:
Other:
Thanks:
Published by myitcv over 5 years ago
Enhancements:
gopls
version upgrades:
Bug fixes:
Other:
Published by myitcv over 5 years ago
Enhancements:
Bug fixes:
The detail of #299 is worth of expansion:
- Log to a specific gopls logfile
- Only do ftplugin-based configuration once govim has loaded
- Prevent race condition on autocmd events possibly being handled before govim is initcomplete
- Use Vim's execute() function instead of our own terrible function
- Put in a hacky fix for local-aware version parsing; add a test for a non-English version string
Minor changes:
Published by myitcv over 5 years ago
Enhancements:
golang.org/x/tools/gopls
module (#298)Bug fixes:
Minor:
Published by myitcv over 5 years ago
gopls
issue)Published by myitcv over 5 years ago
Published by myitcv over 5 years ago