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: autocomplete returns packages within excluded directories (per build.directoryFilters) #52347

Open
gonzojive opened this issue Apr 14, 2022 · 2 comments
Labels
gopls/completion gopls NeedsInvestigation Tools
Milestone

Comments

@gonzojive
Copy link

@gonzojive gonzojive commented Apr 14, 2022

Related to #48939 and reproduced in a repository.

screenshot

What version of Go are you using (go version)?

$ go version

Does this issue reproduce with the latest release?

Yes:

~/git/go-tools$ git log -n 1
commit fe932b4680bd8878524bfea7a12f7cf30e1e0438

What operating system and processor architecture are you using (go env)?

go env Output
$ $ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/red/.cache/go-build"
GOENV="/home/red/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/red/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/red/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.18"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/red/git/gopls-bug-workspace-filters/go.mod"
GOWORK=""
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-build2678705596=/tmp/go-build -gno-record-gcc-switches"

What did you do?

  1. Check out https://github.com/gonzojive/gopls-bug-workspace-filters
  2. Open internal/activework/activework.go
  3. Try to tab complete myl within a function. The autocomplete list will include a library in the generated_stuff dir, which is included in the build.directoryFilters exclusion list:
{
    "gopls": {
        "build.directoryFilters": [
            "-generated_stuff",
        ],
        "formatting.local": "github.com/api-definitions/keyval",
    },
}

What did you expect to see?

Packages in generated_stuff shouldn't be included in autocomplete list?

I can't tell if this is working as intended. It came up before in #37697, but I interpret the build.directoryFilters to mean that the generated_stuff folder should be ignored in this context as well: https://github.com/golang/vscode-go/blob/master/docs/settings.md#builddirectoryfilters.

What did you see instead?

mylib is included in the autocomplete list.

@gopherbot gopherbot added Tools gopls labels Apr 14, 2022
@gopherbot gopherbot added this to the Unreleased milestone Apr 14, 2022
@gonzojive gonzojive changed the title x/tools/gopls: x/tools/gopls: autocomplete returns packages within excluded directories (per build.directoryFilters) Apr 14, 2022
@jamalc jamalc added the NeedsInvestigation label Apr 14, 2022
@jamalc jamalc removed this from the Unreleased milestone Apr 14, 2022
@jamalc jamalc added this to the gopls/on-deck milestone Apr 14, 2022
@gonzojive
Copy link
Author

@gonzojive gonzojive commented Apr 19, 2022

I came across a related issue: #42965

From browsing the source, I wonder if the call to imports.GetAllCandidates from completions.go could be altered to pass in a filter derived from the directoryFilters that gets used in the dirFound callback that imports.GetAllCandidates uses to limit what packages it scans.

@gonzojive
Copy link
Author

@gonzojive gonzojive commented Apr 19, 2022

This bug may also be a duplicate of #51265, not totally sure.

gonzojive added a commit to gonzojive/tools that referenced this issue Apr 19, 2022
gonzojive added a commit to gonzojive/tools that referenced this issue Apr 19, 2022
@hyangah hyangah added the gopls/completion label May 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gopls/completion gopls NeedsInvestigation Tools
Projects
None yet
Development

No branches or pull requests

4 participants