-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Description
What version of Go are you using (go version
)?
$ go version go version devel +2b50ab2aee Tue Mar 2 06:38:07 2021 +0000 linux/amd64 $ go list -m golang.org/x/tools golang.org/x/tools v0.1.1-0.20210227203037-f5a4005dda57 $ go list -m golang.org/x/tools/gopls golang.org/x/tools/gopls v0.0.0-20210227203037-f5a4005dda57
Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env
)?
go env
Output
$ go env GO111MODULE="" GOARCH="amd64" GOBIN="" GOCACHE="/home/myitcv/.cache/go-build" GOENV="/home/myitcv/.config/go/env" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GOMODCACHE="/home/myitcv/gostuff/pkg/mod" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/myitcv/gostuff" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/home/myitcv/gos" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/home/myitcv/gos/pkg/tool/linux_amd64" GOVCS="" GOVERSION="devel +2b50ab2aee Tue Mar 2 06:38:07 2021 +0000" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="/home/myitcv/.vim/plugged/govim/go.mod" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build1158509768=/tmp/go-build -gno-record-gcc-switches"
What did you do?
Start by adding github.com/kr/pretty
to your module cache:
cd $(mktemp -d)
go mod init blah.com
go get github.com/kr/pretty
Then separately create the following setup:
-- go.mod --
module blah.com
go 1.16
-- main.go --
package main
func main() {
}
Edit main.go
as follows:
package main
func main() {
pretty.Spr_
}
and trigger completion twice (see #44764) with the cursor in the position shown by _
.
Accept the completion result for github.com/kr/pretty.Sprint
What did you expect to see?
No error diagnostics.
What did you see instead?
could not import github.com/kr/pretty (no required module provides package \"github.com/kr/pretty\")
This issue is a follow up to the discussions that were started in #44008. Specifically it is a proposal/suggestion to relax the constraint that a go.{mod,sum}
should not be updated under any circumstances other than the user specifically invoking a go get
command, to instead allow updates when the user accepts an unimported completion.
The logic/reasoning behind the shift to the new default is sound. But one of the main reasons that I personally still use the AllowModfileModifications
option is that unimported completions in new projects are a regular part of my workflow. So having to manually invoke a command to effectively run go get $pkg
seems like a superfluous step when I just selected a very specific unimported completion.
cc @stamblerre @heschik
FYI @leitzler