Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/tools/gopls: allowing automatic go.{mod,sum} modifications when unimported completions are selected #44765

Open
myitcv opened this issue Mar 3, 2021 · 0 comments

Comments

@myitcv
Copy link
Member

@myitcv myitcv commented Mar 3, 2021

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

@gopherbot gopherbot added the Tools label Mar 3, 2021
@gopherbot gopherbot added this to the Unreleased milestone Mar 3, 2021
@stamblerre stamblerre removed this from the Unreleased milestone Mar 3, 2021
@stamblerre stamblerre added this to the gopls/v1.0.0 milestone Mar 3, 2021
@stamblerre stamblerre added this to To Do in gopls on-deck Mar 11, 2021
@stamblerre stamblerre removed this from the gopls/v1.0.0 milestone Jun 28, 2021
@stamblerre stamblerre added this to the gopls/unplanned milestone Jun 28, 2021
@stamblerre stamblerre removed this from To Do in gopls on-deck Jun 28, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
4 participants