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: support opening $GOPATH as well as $GOPATH/src #46489

Closed
ybaldus opened this issue May 27, 2021 · 5 comments
Closed

x/tools/gopls: support opening $GOPATH as well as $GOPATH/src #46489

ybaldus opened this issue May 27, 2021 · 5 comments
Labels
FrozenDueToAge gopls Issues related to the Go language server, gopls. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. Tools This label describes issues relating to any tools in the x/tools repository.

Comments

@ybaldus
Copy link

ybaldus commented May 27, 2021

What version of Go, VS Code & VS Code Go extension are you using?

  • Run go version to get version of Go from the VS Code integrated terminal.
    • go version go1.15.6 linux/amd64
  • Run gopls -v version to get version of Gopls from the VS Code integrated terminal.
    • Build info
      ----------
      golang.org/x/tools/gopls v0.6.11
      golang.org/x/tools/gopls@v0.6.11 h1:7S2k0xuVYc3secjy2uz0n+fGYxGJU6gXsLOmQ/r1HoI=
      github.com/BurntSushi/toml@v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
      github.com/google/go-cmp@v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
      github.com/sergi/go-diff@v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
      golang.org/x/mod@v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo=
      golang.org/x/sync@v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
      golang.org/x/sys@v0.0.0-20210403161142-5e06dd20ab57 h1:F5Gozwx4I1xtr/sr/8CFbb57iKi3297KFs0QDbGN60A=
      golang.org/x/tools@v0.1.1-0.20210504170620-03ebc2c9fca8 h1:rTLms91GhM16y4sUcNGLdel0jJ8jXdQeXuN+7evgYiQ=
      golang.org/x/xerrors@v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
      honnef.co/go/tools@v0.1.3 h1:qTakTkI6ni6LFD5sBwwsdSO+AQqbSIxOauHTTQKZ/7o=
      mvdan.cc/gofumpt@v0.1.1 h1:bi/1aS/5W00E2ny5q65w9SnKpWEF/UIOqDYBILpo9rA=
      mvdan.cc/xurls/v2@v2.2.0 h1:NSZPykBXJFCetGZykLAxaL6SIpvbVy/UFEniIfHAa8A=
  • Run code -v or code-insiders -v to get version of VS Code or VS Code Insiders.
    • 1.56.2 054a9295330880ed74ceaedda236253b4f39a335 x64
  • Check your installed extensions to get the version of the VS Code Go extension
    • v0.25.1
  • Run Ctrl+Shift+P (Cmd+Shift+P on Mac OS) > Go: Locate Configured Go Tools command.
Checking configured tools....
GOBIN: undefined
toolsGopath: 
gopath: /home/ybaldus/projects/reference-test:/home/ybaldus/projects/reference-test/vendor
GOROOT: /home/ybaldus/.asdf/installs/golang/1.15.6/go
PATH: /home/ybaldus/.asdf/installs/nodejs/12.13.1/.npm/bin:/home/ybaldus/.asdf/shims:/home/ybaldus/.asdf/bin:/home/ybaldus/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

   gopkgs: /home/ybaldus/projects/reference-test/bin/gopkgs installed
   go-outline: /home/ybaldus/projects/reference-test/bin/go-outline installed
   gotests: /home/ybaldus/projects/reference-test/bin/gotests installed
   gomodifytags: /home/ybaldus/projects/reference-test/bin/gomodifytags installed
   impl: /home/ybaldus/projects/reference-test/bin/impl installed
   goplay: /home/ybaldus/projects/reference-test/bin/goplay installed
   dlv: /home/ybaldus/projects/reference-test/bin/dlv installed
   dlv-dap: /home/ybaldus/projects/reference-test/bin/dlv-dap installed
   staticcheck: /home/ybaldus/projects/reference-test/bin/staticcheck installed
   gopls: /home/ybaldus/projects/reference-test/bin/gopls installed

go env
Workspace Folder (reference-test): /home/ybaldus/projects/reference-test
	GO111MODULE=""
	GOARCH="amd64"
	GOBIN=""
	GOCACHE="/home/ybaldus/.cache/go-build"
	GOENV="/home/ybaldus/.config/go/env"
	GOEXE=""
	GOFLAGS=""
	GOHOSTARCH="amd64"
	GOHOSTOS="linux"
	GOINSECURE=""
	GOMODCACHE="/home/ybaldus/projects/reference-test/pkg/mod"
	GONOPROXY=""
	GONOSUMDB=""
	GOOS="linux"
	GOPATH="/home/ybaldus/projects/reference-test:/home/ybaldus/projects/reference-test/vendor"
	GOPRIVATE=""
	GOPROXY="https://proxy.golang.org,direct"
	GOROOT="/home/ybaldus/.asdf/installs/golang/1.15.6/go"
	GOSUMDB="sum.golang.org"
	GOTMPDIR=""
	GOTOOLDIR="/home/ybaldus/.asdf/installs/golang/1.15.6/go/pkg/tool/linux_amd64"
	GCCGO="gccgo"
	AR="ar"
	CC="gcc"
	CXX="g++"
	CGO_ENABLED="1"
	GOMOD=""
	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-build668739514=/tmp/go-build -gno-record-gcc-switches"

Share the Go related settings you have added/edited

    "go.toolsManagement.autoUpdate": true,
    "go.testFlags": [
        "-v"
    ],

Describe the bug

A clear and concise description of what the bug.
A clear and concise description of what you expected to happen.

Steps to reproduce the behavior:

  1. Open a workspace without open editors
  2. Open any file in a package from which something is referenced
  3. Try to find all refrences
  4. You will see only references inside the same package
  5. Open a file from another package where the reference is used
  6. Retry to find all references
  7. You will see everything

My minimal example:
image

Trying to find references:
image

The other file/package:
image

Second attempt to find references:
image

@suzmue
Copy link
Contributor

suzmue commented May 27, 2021

Thanks for filing an issue! I was able to reproduce using the example you provided.

Find references seemed to work as intended if I opened $GOPATH/src instead of $GOPATH.

Logs from gopls:

[Trace - 12:32:30.019 PM] Sending request 'initialize - (0)'.
Params: {"processId":52420,"clientInfo":{"name":"Visual Studio Code","version":"1.56.2"},"locale":"en-us","rootPath":"/Users/suzmue/go","rootUri":"file:///Users/suzmue/go","capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"documentChanges":true,"resourceOperations":["create","rename","delete"],"failureHandling":"textOnlyTransactional","normalizesLineEndings":true,"changeAnnotationSupport":{"groupsOnLabel":true}},"didChangeConfiguration":{"dynamicRegistration":true},"didChangeWatchedFiles":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"tagSupport":{"valueSet":[1]}},"codeLens":{"refreshSupport":true},"executeCommand":{"dynamicRegistration":true},"configuration":true,"workspaceFolders":true,"semanticTokens":{"refreshSupport":true},"fileOperations":{"dynamicRegistration":true,"didCreate":true,"didRename":true,"didDelete":true,"willCreate":true,"willRename":true,"willDelete":true}},"textDocument":{"publishDiagnostics":{"relatedInformation":true,"versionSupport":false,"tagSupport":{"valueSet":[1,2]},"codeDescriptionSupport":true,"dataSupport":true},"synchronization":{"dynamicRegistration":true,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":true,"contextSupport":true,"completionItem":{"snippetSupport":true,"commitCharactersSupport":true,"documentationFormat":["markdown","plaintext"],"deprecatedSupport":true,"preselectSupport":true,"tagSupport":{"valueSet":[1]},"insertReplaceSupport":true,"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]},"insertTextModeSupport":{"valueSet":[1,2]}},"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}},"hover":{"dynamicRegistration":true,"contentFormat":["markdown","plaintext"]},"signatureHelp":{"dynamicRegistration":true,"signatureInformation":{"documentationFormat":["markdown","plaintext"],"parameterInformation":{"labelOffsetSupport":true},"activeParameterSupport":true},"contextSupport":true},"definition":{"dynamicRegistration":true,"linkSupport":true},"references":{"dynamicRegistration":true},"documentHighlight":{"dynamicRegistration":true},"documentSymbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"hierarchicalDocumentSymbolSupport":true,"tagSupport":{"valueSet":[1]},"labelSupport":true},"codeAction":{"dynamicRegistration":true,"isPreferredSupport":true,"disabledSupport":true,"dataSupport":true,"resolveSupport":{"properties":["edit"]},"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"honorsChangeAnnotations":false},"codeLens":{"dynamicRegistration":true},"formatting":{"dynamicRegistration":true},"rangeFormatting":{"dynamicRegistration":true},"onTypeFormatting":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true,"prepareSupport":true,"prepareSupportDefaultBehavior":1,"honorsChangeAnnotations":true},"documentLink":{"dynamicRegistration":true,"tooltipSupport":true},"typeDefinition":{"dynamicRegistration":true,"linkSupport":true},"implementation":{"dynamicRegistration":true,"linkSupport":true},"colorProvider":{"dynamicRegistration":true},"foldingRange":{"dynamicRegistration":true,"rangeLimit":5000,"lineFoldingOnly":true},"declaration":{"dynamicRegistration":true,"linkSupport":true},"selectionRange":{"dynamicRegistration":true},"callHierarchy":{"dynamicRegistration":true},"semanticTokens":{"dynamicRegistration":true,"tokenTypes":["namespace","type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator"],"tokenModifiers":["declaration","definition","readonly","static","deprecated","abstract","async","modification","documentation","defaultLibrary"],"formats":["relative"],"requests":{"range":true,"full":{"delta":true}},"multilineTokenSupport":false,"overlappingTokenSupport":false},"linkedEditingRange":{"dynamicRegistration":true}},"window":{"showMessage":{"messageActionItem":{"additionalPropertiesSupport":true}},"showDocument":{"support":true},"workDoneProgress":true},"general":{"regularExpressions":{"engine":"ECMAScript","version":"ES2020"},"markdown":{"parser":"marked","version":"1.1.0"}}},"initializationOptions":{},"trace":"off","workspaceFolders":[{"uri":"file:///Users/suzmue/go","name":"go"}]}


[Trace - 12:32:30.021 PM] Received response 'initialize - (0)' in 1ms.
Result: {"capabilities":{"textDocumentSync":{"openClose":true,"change":2,"save":{}},"completionProvider":{"triggerCharacters":["."],"completionItem":{}},"hoverProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",","]},"definitionProvider":true,"typeDefinitionProvider":true,"implementationProvider":true,"referencesProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"codeActionProvider":{"codeActionKinds":["quickfix","refactor.extract","refactor.rewrite","source.fixAll","source.organizeImports"]},"codeLensProvider":{},"documentLinkProvider":{},"workspaceSymbolProvider":true,"documentFormattingProvider":true,"documentOnTypeFormattingProvider":{"firstTriggerCharacter":""},"renameProvider":{"prepareProvider":true},"foldingRangeProvider":true,"executeCommandProvider":{"commands":["gopls.add_dependency","gopls.add_import","gopls.apply_fix","gopls.check_upgrades","gopls.gc_details","gopls.generate","gopls.generate_gopls_mod","gopls.go_get_package","gopls.list_known_packages","gopls.regenerate_cgo","gopls.remove_dependency","gopls.run_tests","gopls.start_debugging","gopls.test","gopls.tidy","gopls.toggle_gc_details","gopls.update_go_sum","gopls.upgrade_dependency","gopls.vendor","gopls.workspace_metadata"]},"callHierarchyProvider":true,"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":"workspace/didChangeWorkspaceFolders"}}},"serverInfo":{"name":"gopls","version":"{\"path\":\"golang.org/x/tools/gopls\",\"version\":\"v0.6.11\",\"sum\":\"h1:7S2k0xuVYc3secjy2uz0n+fGYxGJU6gXsLOmQ/r1HoI=\",\"deps\":[{\"path\":\"github.com/BurntSushi/toml\",\"version\":\"v0.3.1\",\"sum\":\"h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=\"},{\"path\":\"github.com/google/go-cmp\",\"version\":\"v0.5.5\",\"sum\":\"h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=\"},{\"path\":\"github.com/sergi/go-diff\",\"version\":\"v1.1.0\",\"sum\":\"h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=\"},{\"path\":\"golang.org/x/mod\",\"version\":\"v0.4.2\",\"sum\":\"h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo=\"},{\"path\":\"golang.org/x/sync\",\"version\":\"v0.0.0-20210220032951-036812b2e83c\",\"sum\":\"h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=\"},{\"path\":\"golang.org/x/sys\",\"version\":\"v0.0.0-20210403161142-5e06dd20ab57\",\"sum\":\"h1:F5Gozwx4I1xtr/sr/8CFbb57iKi3297KFs0QDbGN60A=\"},{\"path\":\"golang.org/x/tools\",\"version\":\"v0.1.1-0.20210504170620-03ebc2c9fca8\",\"sum\":\"h1:rTLms91GhM16y4sUcNGLdel0jJ8jXdQeXuN+7evgYiQ=\"},{\"path\":\"golang.org/x/xerrors\",\"version\":\"v0.0.0-20200804184101-5ec99f83aff1\",\"sum\":\"h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=\"},{\"path\":\"honnef.co/go/tools\",\"version\":\"v0.1.3\",\"sum\":\"h1:qTakTkI6ni6LFD5sBwwsdSO+AQqbSIxOauHTTQKZ/7o=\"},{\"path\":\"mvdan.cc/gofumpt\",\"version\":\"v0.1.1\",\"sum\":\"h1:bi/1aS/5W00E2ny5q65w9SnKpWEF/UIOqDYBILpo9rA=\"},{\"path\":\"mvdan.cc/xurls/v2\",\"version\":\"v2.2.0\",\"sum\":\"h1:NSZPykBXJFCetGZykLAxaL6SIpvbVy/UFEniIfHAa8A=\"}]}"}}


[Trace - 12:32:30.023 PM] Sending notification 'initialized'.
Params: {}


[Trace - 12:32:30.023 PM] Sending notification 'textDocument/didOpen'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package1/package1.go","languageId":"go","version":1,"text":"package package1\n\ntype Test struct{}\n\nvar test Test\n"}}


[Trace - 12:32:30.023 PM] Received request 'window/workDoneProgress/create - (1)'.
Params: {"token":"5577006791947779410"}


[Trace - 12:32:30.023 PM] Sending response 'window/workDoneProgress/create - (1)' in 0ms.
Result: 


[Trace - 12:32:30.023 PM] Received notification '$/progress'.
Params: {"token":"5577006791947779410","value":{"kind":"begin","title":"Setting up workspace","message":"Loading packages..."}}


[Trace - 12:32:30.023 PM] Received request 'workspace/configuration - (2)'.
Params: {"items":[{"scopeUri":"file:///Users/suzmue/go","section":"gopls"}]}


[Trace - 12:32:30.025 PM] Sending response 'workspace/configuration - (2)' in 1ms.
Result: [{}]


[Trace - 12:32:30.029 PM] Sending request 'textDocument/documentSymbol - (1)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package1/package1.go"}}


[Trace - 12:32:30.029 PM] Sending request 'textDocument/codeAction - (2)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package1/package1.go"},"range":{"start":{"line":4,"character":9},"end":{"line":4,"character":9}},"context":{"diagnostics":[]}}


[Trace - 12:32:30.029 PM] Sending request 'textDocument/documentLink - (3)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package1/package1.go"}}


[Trace - 12:32:30.231 PM] Sending request 'textDocument/foldingRange - (4)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package1/package1.go"}}


[Trace - 12:32:30.282 PM] Sending request 'textDocument/codeLens - (5)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package1/package1.go"}}


[Trace - 12:32:30.427 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2021/05/27 12:32:30 go env for /Users/suzmue/go\n(root /Users/suzmue/go)\n(go version go version go1.16.4 darwin/amd64)\n(valid build configuration = false)\n(build flags: [])\nGOPROXY=https://proxy.golang.org,direct\nGOROOT=/usr/local/go\nGOINSECURE=\nGOPRIVATE=\nGO111MODULE=\nGOFLAGS=\nGONOPROXY=\nGONOSUMDB=\nGOCACHE=/Users/suzmue/Library/Caches/go-build\nGOMOD=/dev/null\nGOSUMDB=sum.golang.org\nGOMODCACHE=/Users/suzmue/go/pkg/mod\nGOPATH=/Users/suzmue/go\n\n"}


[Info  - 12:32:30 PM] 2021/05/27 12:32:30 go env for /Users/suzmue/go
(root /Users/suzmue/go)
(go version go version go1.16.4 darwin/amd64)
(valid build configuration = false)
(build flags: [])
GOPROXY=https://proxy.golang.org,direct
GOROOT=/usr/local/go
GOINSECURE=
GOPRIVATE=
GO111MODULE=
GOFLAGS=
GONOPROXY=
GONOSUMDB=
GOCACHE=/Users/suzmue/Library/Caches/go-build
GOMOD=/dev/null
GOSUMDB=sum.golang.org
GOMODCACHE=/Users/suzmue/go/pkg/mod
GOPATH=/Users/suzmue/go


[Trace - 12:32:30.443 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2021/05/27 12:32:30 go/packages.Load\n\tsnapshot=0\n\tdirectory=/Users/suzmue/go\n\tquery=[./ builtin]\n\tpackages=2\n"}


[Trace - 12:32:30.443 PM] Received notification '$/progress'.
Params: {"token":"5577006791947779410","value":{"kind":"end","message":"Finished loading packages."}}


[Info  - 12:32:30 PM] 2021/05/27 12:32:30 go/packages.Load
	snapshot=0
	directory=/Users/suzmue/go
	query=[./ builtin]
	packages=2

[Trace - 12:32:30.443 PM] Received request 'client/registerCapability - (3)'.
Params: {"registrations":[{"id":"workspace/didChangeWatchedFiles-0","method":"workspace/didChangeWatchedFiles","registerOptions":{"watchers":[{"globPattern":"**/*.{go,mod,sum}","kind":7}]}}]}


[Trace - 12:32:30.444 PM] Sending response 'client/registerCapability - (3)' in 1ms.
Result: 


[Trace - 12:32:30.446 PM] Received request 'client/registerCapability - (4)'.
Params: {"registrations":[{"id":"workspace/didChangeConfiguration","method":"workspace/didChangeConfiguration"},{"id":"workspace/didChangeWorkspaceFolders","method":"workspace/didChangeWorkspaceFolders"}]}


[Trace - 12:32:30.447 PM] Sending response 'client/registerCapability - (4)' in 0ms.
Result: 


[Trace - 12:32:30.449 PM] Received request 'client/registerCapability - (5)'.
Params: {"registrations":[{"id":"workspace/didChangeWatchedFiles-1","method":"workspace/didChangeWatchedFiles","registerOptions":{"watchers":[{"globPattern":"**/*.{go,mod,sum}","kind":7},{"globPattern":"{/Users/suzmue/go/src,/Users/suzmue/go/src/package1}","kind":7}]}}]}


[Trace - 12:32:30.450 PM] Sending response 'client/registerCapability - (5)' in 1ms.
Result: 


[Trace - 12:32:30.453 PM] Received request 'client/unregisterCapability - (6)'.
Params: {"unregisterations":[{"id":"workspace/didChangeWatchedFiles-0","method":"workspace/didChangeWatchedFiles"}]}


[Trace - 12:32:30.454 PM] Sending response 'client/unregisterCapability - (6)' in 0ms.
Result: 


[Trace - 12:32:30.478 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2021/05/27 12:32:30 go/packages.Load\n\tsnapshot=0\n\tdirectory=/Users/suzmue/go\n\tquery=[./]\n\tpackages=1\n"}


[Info  - 12:32:30 PM] 2021/05/27 12:32:30 go/packages.Load
	snapshot=0
	directory=/Users/suzmue/go
	query=[./]
	packages=1

[Trace - 12:32:30.493 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2021/05/27 12:32:30 go/packages.Load\n\tsnapshot=1\n\tdirectory=/Users/suzmue/go\n\tquery=[file=/Users/suzmue/go/src/package1/package1.go]\n\tpackages=1\n"}


[Info  - 12:32:30 PM] 2021/05/27 12:32:30 go/packages.Load
	snapshot=1
	directory=/Users/suzmue/go
	query=[file=/Users/suzmue/go/src/package1/package1.go]
	packages=1

[Trace - 12:32:30.493 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2021/05/27 12:32:30 go/packages.Load\n\tsnapshot=1\n\tpackage=\"package1\"\n\tfiles=[/Users/suzmue/go/src/package1/package1.go]\n"}


[Info  - 12:32:30 PM] 2021/05/27 12:32:30 go/packages.Load
	snapshot=1
	package="package1"
	files=[/Users/suzmue/go/src/package1/package1.go]

[Trace - 12:32:30.498 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2021/05/27 12:32:30 go/packages.Load\n\tsnapshot=1\n\tdirectory=/Users/suzmue/go\n\tquery=[file=/Users/suzmue/go/src/package1/package1.go]\n\tpackages=1\n"}


[Trace - 12:32:30.498 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2021/05/27 12:32:30 go/packages.Load\n\tsnapshot=1\n\tpackage=\"package1\"\n\tfiles=[/Users/suzmue/go/src/package1/package1.go]\n"}


[Info  - 12:32:30 PM] 2021/05/27 12:32:30 go/packages.Load
	snapshot=1
	directory=/Users/suzmue/go
	query=[file=/Users/suzmue/go/src/package1/package1.go]
	packages=1

[Trace - 12:32:30.498 PM] Received response 'textDocument/documentSymbol - (1)' in 469ms.
Result: [{"name":"Test","detail":"struct{...}","kind":23,"range":{"start":{"line":2,"character":5},"end":{"line":2,"character":18}},"selectionRange":{"start":{"line":2,"character":5},"end":{"line":2,"character":9}}},{"name":"test","detail":"Test","kind":13,"range":{"start":{"line":4,"character":0},"end":{"line":4,"character":13}},"selectionRange":{"start":{"line":4,"character":4},"end":{"line":4,"character":8}}}]


[Info  - 12:32:30 PM] 2021/05/27 12:32:30 go/packages.Load
	snapshot=1
	package="package1"
	files=[/Users/suzmue/go/src/package1/package1.go]

[Trace - 12:32:30.499 PM] Received response 'textDocument/codeAction - (2)' in 469ms.
Result: null


[Trace - 12:32:30.499 PM] Received response 'textDocument/documentLink - (3)' in 469ms.
Result: null


[Trace - 12:32:30.499 PM] Received response 'textDocument/foldingRange - (4)' in 268ms.
Result: []


[Trace - 12:32:30.499 PM] Received response 'textDocument/codeLens - (5)' in 217ms.
Result: null


[Trace - 12:32:30.510 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2021/05/27 12:32:30 go/packages.Load\n\tsnapshot=0\n\tdirectory=/Users/suzmue/go\n\tquery=[./]\n\tpackages=1\n"}


[Info  - 12:32:30 PM] 2021/05/27 12:32:30 go/packages.Load
	snapshot=0
	directory=/Users/suzmue/go
	query=[./]
	packages=1

[Trace - 12:32:30.539 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2021/05/27 12:32:30 go/packages.Load\n\tsnapshot=0\n\tdirectory=/Users/suzmue/go\n\tquery=[./]\n\tpackages=1\n"}


[Info  - 12:32:30 PM] 2021/05/27 12:32:30 go/packages.Load
	snapshot=0
	directory=/Users/suzmue/go
	query=[./]
	packages=1

[Trace - 12:32:31.872 PM] Sending request 'textDocument/hover - (6)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package1/package1.go"},"position":{"line":2,"character":17}}


[Trace - 12:32:31.873 PM] Received response 'textDocument/hover - (6)' in 0ms.
Result: null


[Trace - 12:32:32.804 PM] Sending request 'textDocument/hover - (7)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package1/package1.go"},"position":{"line":4,"character":11}}


[Trace - 12:32:32.804 PM] Received response 'textDocument/hover - (7)' in 0ms.
Result: {"contents":{"kind":"markdown","value":"```go\ntype Test struct{}\n```\n\n[`package1.Test` on pkg.go.dev](https://pkg.go.dev/package1?utm_source=gopls#Test)"},"range":{"start":{"line":4,"character":9},"end":{"line":4,"character":13}}}


[Trace - 12:32:33.192 PM] Sending request 'textDocument/codeLens - (8)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package1/package1.go"}}


[Trace - 12:32:33.192 PM] Sending request 'textDocument/codeAction - (9)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package1/package1.go"},"range":{"start":{"line":4,"character":12},"end":{"line":4,"character":12}},"context":{"diagnostics":[]}}


[Trace - 12:32:33.192 PM] Received response 'textDocument/codeLens - (8)' in 0ms.
Result: null


[Trace - 12:32:33.192 PM] Received response 'textDocument/codeAction - (9)' in 0ms.
Result: null


[Trace - 12:32:34.368 PM] Sending request 'textDocument/references - (10)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package1/package1.go"},"position":{"line":4,"character":12},"context":{"includeDeclaration":true}}


[Trace - 12:32:34.368 PM] Received response 'textDocument/references - (10)' in 0ms.
Result: [{"uri":"file:///Users/suzmue/go/src/package1/package1.go","range":{"start":{"line":2,"character":5},"end":{"line":2,"character":9}}},{"uri":"file:///Users/suzmue/go/src/package1/package1.go","range":{"start":{"line":4,"character":9},"end":{"line":4,"character":13}}}]


[Trace - 12:32:37.640 PM] Sending request 'textDocument/documentSymbol - (11)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package1/package1.go"}}


[Trace - 12:32:37.640 PM] Sending notification 'textDocument/didClose'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package1/package1.go"}}


[Trace - 12:32:37.640 PM] Sending notification '$/cancelRequest'.
Params: {"id":11}


[Error - Received] 12:32:37.640 PM golang/vscode-go#11 JSON RPC cancelled


[Trace - 12:32:37.662 PM] Sending notification 'textDocument/didOpen'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package2/package2.go","languageId":"go","version":1,"text":"package package2\n\nimport \"package1\"\n\nvar test package1.Test\n"}}


[Trace - 12:32:37.662 PM] Sending request 'textDocument/documentLink - (12)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package2/package2.go"}}


[Trace - 12:32:37.663 PM] Sending request 'textDocument/codeAction - (13)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package2/package2.go"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}}


[Trace - 12:32:37.663 PM] Sending request 'textDocument/documentSymbol - (14)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package2/package2.go"}}


[Trace - 12:32:37.663 PM] Received request 'client/registerCapability - (7)'.
Params: {"registrations":[{"id":"workspace/didChangeWatchedFiles-2","method":"workspace/didChangeWatchedFiles","registerOptions":{"watchers":[{"globPattern":"**/*.{go,mod,sum}","kind":7},{"globPattern":"{/Users/suzmue/go/src,/Users/suzmue/go/src/package1,/Users/suzmue/go/src/package2}","kind":7}]}}]}


[Trace - 12:32:37.665 PM] Sending response 'client/registerCapability - (7)' in 1ms.
Result: 


[Trace - 12:32:37.666 PM] Received request 'client/unregisterCapability - (8)'.
Params: {"unregisterations":[{"id":"workspace/didChangeWatchedFiles-1","method":"workspace/didChangeWatchedFiles"}]}


[Trace - 12:32:37.668 PM] Sending response 'client/unregisterCapability - (8)' in 1ms.
Result: 


[Trace - 12:32:37.707 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2021/05/27 12:32:37 go/packages.Load\n\tsnapshot=3\n\tdirectory=/Users/suzmue/go\n\tquery=[file=/Users/suzmue/go/src/package2/package2.go]\n\tpackages=1\n"}


[Trace - 12:32:37.707 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2021/05/27 12:32:37 go/packages.Load\n\tsnapshot=3\n\tpackage=\"package2\"\n\tfiles=[/Users/suzmue/go/src/package2/package2.go]\n"}


[Info  - 12:32:37 PM] 2021/05/27 12:32:37 go/packages.Load
	snapshot=3
	directory=/Users/suzmue/go
	query=[file=/Users/suzmue/go/src/package2/package2.go]
	packages=1

[Info  - 12:32:37 PM] 2021/05/27 12:32:37 go/packages.Load
	snapshot=3
	package="package2"
	files=[/Users/suzmue/go/src/package2/package2.go]

[Trace - 12:32:37.710 PM] Received response 'textDocument/documentLink - (12)' in 47ms.
Result: [{"range":{"start":{"line":2,"character":8},"end":{"line":2,"character":16}},"target":"https://pkg.go.dev/package1?utm_source=gopls"}]


[Trace - 12:32:37.710 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2021/05/27 12:32:37 go/packages.Load\n\tsnapshot=3\n\tdirectory=/Users/suzmue/go\n\tquery=[file=/Users/suzmue/go/src/package2/package2.go]\n\tpackages=1\n"}


[Trace - 12:32:37.711 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2021/05/27 12:32:37 go/packages.Load\n\tsnapshot=3\n\tpackage=\"package2\"\n\tfiles=[/Users/suzmue/go/src/package2/package2.go]\n"}


[Trace - 12:32:37.711 PM] Received response 'textDocument/codeAction - (13)' in 48ms.
Result: null


[Info  - 12:32:37 PM] 2021/05/27 12:32:37 go/packages.Load
	snapshot=3
	directory=/Users/suzmue/go
	query=[file=/Users/suzmue/go/src/package2/package2.go]
	packages=1

[Trace - 12:32:37.711 PM] Received response 'textDocument/documentSymbol - (14)' in 48ms.
Result: [{"name":"test","detail":"package1.Test","kind":13,"range":{"start":{"line":4,"character":0},"end":{"line":4,"character":22}},"selectionRange":{"start":{"line":4,"character":4},"end":{"line":4,"character":8}}}]


[Info  - 12:32:37 PM] 2021/05/27 12:32:37 go/packages.Load
	snapshot=3
	package="package2"
	files=[/Users/suzmue/go/src/package2/package2.go]

[Trace - 12:32:37.849 PM] Sending request 'textDocument/foldingRange - (15)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package2/package2.go"}}


[Trace - 12:32:37.849 PM] Received response 'textDocument/foldingRange - (15)' in 0ms.
Result: []


[Trace - 12:32:37.900 PM] Sending request 'textDocument/codeLens - (16)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package2/package2.go"}}


[Trace - 12:32:37.900 PM] Received response 'textDocument/codeLens - (16)' in 0ms.
Result: null


[Trace - 12:32:38.531 PM] Sending request 'textDocument/hover - (17)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package2/package2.go"},"position":{"line":4,"character":20}}


[Trace - 12:32:38.531 PM] Received response 'textDocument/hover - (17)' in 0ms.
Result: {"contents":{"kind":"markdown","value":"```go\ntype Test struct{}\n```\n\n[`package1.Test` on pkg.go.dev](https://pkg.go.dev/package1?utm_source=gopls#Test)"},"range":{"start":{"line":4,"character":18},"end":{"line":4,"character":22}}}


[Trace - 12:32:38.835 PM] Sending request 'textDocument/codeLens - (18)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package2/package2.go"}}


[Trace - 12:32:38.836 PM] Received response 'textDocument/codeLens - (18)' in 0ms.
Result: null


[Trace - 12:32:38.836 PM] Sending request 'textDocument/codeAction - (19)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package2/package2.go"},"range":{"start":{"line":4,"character":20},"end":{"line":4,"character":20}},"context":{"diagnostics":[]}}


[Trace - 12:32:38.837 PM] Received response 'textDocument/codeAction - (19)' in 0ms.
Result: null


[Trace - 12:32:39.909 PM] Sending request 'textDocument/references - (20)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package2/package2.go"},"position":{"line":4,"character":20},"context":{"includeDeclaration":true}}


[Trace - 12:32:39.909 PM] Received response 'textDocument/references - (20)' in 0ms.
Result: [{"uri":"file:///Users/suzmue/go/src/package1/package1.go","range":{"start":{"line":2,"character":5},"end":{"line":2,"character":9}}},{"uri":"file:///Users/suzmue/go/src/package1/package1.go","range":{"start":{"line":4,"character":9},"end":{"line":4,"character":13}}},{"uri":"file:///Users/suzmue/go/src/package2/package2.go","range":{"start":{"line":4,"character":18},"end":{"line":4,"character":22}}}]


[Trace - 12:32:40.124 PM] Sending notification 'textDocument/didOpen'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package1/package1.go","languageId":"go","version":1,"text":"package package1\n\ntype Test struct{}\n\nvar test Test\n"}}


[Trace - 12:32:43.261 PM] Sending request 'textDocument/codeLens - (21)'.
Params: {"textDocument":{"uri":"file:///Users/suzmue/go/src/package2/package2.go"}}


[Trace - 12:32:43.262 PM] Received response 'textDocument/codeLens - (21)' in 0ms.
Result: null





@ybaldus
Copy link
Author

ybaldus commented May 28, 2021

Thanks for filing an issue! I was able to reproduce using the example you provided.

Find references seemed to work as intended if I opened $GOPATH/src instead of $GOPATH.

Thanks for finding this out. This helps alot already. Did vscode change something in there indexing procedure?

@hyangah
Copy link
Contributor

hyangah commented May 28, 2021

@ybaldus It enabled the language server (gopls) by default early this year for better module mode support. https://blog.golang.org/gopls-vscode-go

This documentation describes the supported workspace settings.

@ybaldus
Copy link
Author

ybaldus commented May 28, 2021

This documentation describes the supported workspace settings.

Okay, I didn't saw the part about the GOPATH mode. From my understanding of the documentation my example should still work, shouldn't it?

@stamblerre stamblerre transferred this issue from golang/vscode-go Jun 1, 2021
@gopherbot gopherbot added the gopls Issues related to the Go language server, gopls. label Jun 1, 2021
@stamblerre stamblerre changed the title gopls: gopath env: find all references can't find references outside the own package x/tools/gopls: gopath env: find all references can't find references outside the own package Jun 1, 2021
@stamblerre stamblerre changed the title x/tools/gopls: gopath env: find all references can't find references outside the own package x/tools/gopls: support opening $GOPATH as well as $GOPATH/src Jun 1, 2021
@gopherbot gopherbot added the Tools This label describes issues relating to any tools in the x/tools repository. label Jun 1, 2021
@gopherbot gopherbot added this to the Unreleased milestone Jun 1, 2021
@stamblerre stamblerre modified the milestones: Unreleased, gopls/unplanned Jun 1, 2021
@stamblerre stamblerre added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Jun 1, 2021
@stamblerre stamblerre self-assigned this Jun 4, 2021
@stamblerre
Copy link
Contributor

I think this is actually working as intended. Treating $GOPATH/src like the workspace root would present more complexity, especially if you open a top-level directory that contains Go files in other subdirectories. Furthermore, Go is moving away from GOPATH mode anyway, so it is recommended that you use modules instead.

@stamblerre stamblerre removed this from the gopls/unplanned milestone Jul 12, 2021
@golang golang locked and limited conversation to collaborators Jun 23, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge gopls Issues related to the Go language server, gopls. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. Tools This label describes issues relating to any tools in the x/tools repository.
Projects
None yet
Development

No branches or pull requests

5 participants