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/internal/imports: breaks when gopls specifies GOPROXY=off #43333

Closed
stamblerre opened this issue Dec 23, 2020 · 3 comments
Closed

x/tools/internal/imports: breaks when gopls specifies GOPROXY=off #43333

stamblerre opened this issue Dec 23, 2020 · 3 comments
Labels
FrozenDueToAge 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.
Milestone

Comments

@stamblerre
Copy link
Contributor

Unimported completions work as expected, but imports-on-save does not add imports for unknown symbols that refer to exported variables.

Adding debug.VersionInfo to a package in golang.org/x/tools/internal/lsp will add an import for https://pkg.go.dev/golang.org/x/tools/internal/lsp/debug, whereas adding debug.Version does not. The only different is that VersionInfo is a function and Version is an exported variable.

/cc @heschik

@gopherbot gopherbot added the Tools This label describes issues relating to any tools in the x/tools repository. label Dec 23, 2020
@gopherbot gopherbot added this to the Unreleased milestone Dec 23, 2020
@stamblerre stamblerre changed the title x/tools/internal/imports: does not consider exported variables as symbols x/tools/internal/imports: does not consider exported variables Dec 23, 2020
@dmitshur dmitshur added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Dec 30, 2020
@heschi
Copy link
Contributor

heschi commented Jan 8, 2021

I can't reproduce this. Do you have a log?

@stamblerre
Copy link
Contributor Author

stamblerre commented Jan 10, 2021

Reproduced in experimental workspace mode with golang.org/x/tools opened, by adding debug.Version to the first line of the NewServer function in golang.org/x/tools/internal/lsp/server.go.

[Trace - 22:15:08.425 PM] Sending request 'initialize - (0)'.
Params: {"processId":75614,"clientInfo":{"name":"vscode","version":"1.53.0-insider"},"rootPath":"/Users/rstambler/code/src/golang.org/x/tools","rootUri":"file:///Users/rstambler/code/src/golang.org/x/tools","capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"documentChanges":true,"resourceOperations":["create","rename","delete"],"failureHandling":"textOnlyTransactional"},"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]}},"executeCommand":{"dynamicRegistration":true},"configuration":true,"workspaceFolders":true,"semanticTokens":{"refreshSupport":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"]}},"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"]}}},"codeLens":{"dynamicRegistration":true},"formatting":{"dynamicRegistration":true},"rangeFormatting":{"dynamicRegistration":true},"onTypeFormatting":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true,"prepareSupport":true,"prepareSupportDefaultBehavior":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","member","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}}}},"window":{"workDoneProgress":true}},"initializationOptions":{"ui.diagnostic.staticcheck":true,"allExperiments":true,"ui.codelenses":{"gc_details":false},"ui.semanticTokens":true,"experimentalWorkspaceModule":true},"trace":"verbose","workspaceFolders":[{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools","name":"tools"}]}


[Trace - 22:15:08.426 PM] Received response 'initialize - (0)' in 1ms.
Result: {"capabilities":{"textDocumentSync":{"openClose":true,"change":2,"save":{}},"completionProvider":{"triggerCharacters":["."]},"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.generate","gopls.fill_struct","gopls.regenerate_cgo","gopls.test","gopls.tidy","gopls.update_go_sum","gopls.undeclared_name","gopls.go_get_package","gopls.add_dependency","gopls.upgrade_dependency","gopls.remove_dependency","gopls.vendor","gopls.extract_variable","gopls.extract_function","gopls.gc_details","gopls.generate_gopls_mod"]},"callHierarchyProvider":true,"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":"workspace/didChangeWorkspaceFolders"}}},"serverInfo":{"name":"gopls","version":"{\"path\":\"golang.org/x/tools/gopls\",\"version\":\"(devel)\",\"deps\":[{\"path\":\"github.com/BurntSushi/toml\",\"version\":\"v0.3.1\",\"sum\":\"h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=\"},{\"path\":\"github.com/google/go-cmp\",\"version\":\"v0.5.4\",\"sum\":\"h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M=\"},{\"path\":\"github.com/sergi/go-diff\",\"version\":\"v1.1.0\",\"sum\":\"h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=\"},{\"path\":\"golang.org/x/mod\",\"version\":\"v0.4.0\",\"sum\":\"h1:8pl+sMODzuvGJkmj2W4kZihvVb5mKm8pB/X44PIQHv8=\"},{\"path\":\"golang.org/x/sync\",\"version\":\"v0.0.0-20201020160332-67f06af15bc9\",\"sum\":\"h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck=\"},{\"path\":\"golang.org/x/tools\",\"version\":\"v0.0.0-20210104081019-d8d6ddbec6ee\",\"replace\":{\"path\":\"../\"}},{\"path\":\"golang.org/x/xerrors\",\"version\":\"v0.0.0-20200804184101-5ec99f83aff1\",\"sum\":\"h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=\"},{\"path\":\"honnef.co/go/tools\",\"version\":\"v0.0.1-2020.1.6\",\"sum\":\"h1:W18jzjh8mfPez+AwGLxmOImucz/IFjpNlrKVnaj2YVc=\"},{\"path\":\"mvdan.cc/gofumpt\",\"version\":\"v0.1.0\",\"sum\":\"h1:hsVv+Y9UsZ/mFZTxJZuHVI6shSQCtzZ11h1JEFPAZLw=\"},{\"path\":\"mvdan.cc/xurls/v2\",\"version\":\"v2.2.0\",\"sum\":\"h1:NSZPykBXJFCetGZykLAxaL6SIpvbVy/UFEniIfHAa8A=\"}]}"}}


[Trace - 22:15:08.431 PM] Sending notification 'initialized'.
Params: {}


[Trace - 22:15:08.431 PM] Sending notification 'textDocument/didOpen'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go","languageId":"go","version":1,"text":"// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package lsp implements LSP for gopls.\npackage lsp\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"sync\"\n\n\t\"golang.org/x/tools/internal/jsonrpc2\"\n\t\"golang.org/x/tools/internal/lsp/protocol\"\n\t\"golang.org/x/tools/internal/lsp/source\"\n\t\"golang.org/x/tools/internal/span\"\n\terrors \"golang.org/x/xerrors\"\n)\n\nconst concurrentAnalyses = 1\n\n// NewServer creates an LSP server and binds it to handle incoming client\n// messages on on the supplied stream.\nfunc NewServer(session source.Session, client protocol.Client) *Server {\n\treturn &Server{\n\t\tdiagnostics:           map[span.URI]*fileReports{},\n\t\tgcOptimizationDetails: make(map[span.URI]struct{}),\n\t\twatchedGlobPatterns:   make(map[string]struct{}),\n\t\tchangedFiles:          make(map[span.URI]struct{}),\n\t\tsession:               session,\n\t\tclient:                client,\n\t\tdiagnosticsSema:       make(chan struct{}, concurrentAnalyses),\n\t\tprogress:              newProgressTracker(client),\n\t\tdebouncer:             newDebouncer(),\n\t}\n}\n\ntype serverState int\n\nconst (\n\tserverCreated      = serverState(iota)\n\tserverInitializing // set once the server has received \"initialize\" request\n\tserverInitialized  // set once the server has received \"initialized\" request\n\tserverShutDown\n)\n\nfunc (s serverState) String() string {\n\tswitch s {\n\tcase serverCreated:\n\t\treturn \"created\"\n\tcase serverInitializing:\n\t\treturn \"initializing\"\n\tcase serverInitialized:\n\t\treturn \"initialized\"\n\tcase serverShutDown:\n\t\treturn \"shutDown\"\n\t}\n\treturn fmt.Sprintf(\"(unknown state: %d)\", int(s))\n}\n\n// Server implements the protocol.Server interface.\ntype Server struct {\n\tclient protocol.Client\n\n\tstateMu sync.Mutex\n\tstate   serverState\n\n\tsession   source.Session\n\tclientPID int\n\n\t// notifications generated before serverInitialized\n\tnotifications []*protocol.ShowMessageParams\n\n\t// changedFiles tracks files for which there has been a textDocument/didChange.\n\tchangedFilesMu sync.Mutex\n\tchangedFiles   map[span.URI]struct{}\n\n\t// folders is only valid between initialize and initialized, and holds the\n\t// set of folders to build views for when we are ready\n\tpendingFolders []protocol.WorkspaceFolder\n\n\t// watchedGlobPatterns is the set of glob patterns that we have requested\n\t// the client watch on disk. It will be updated as the set of directories\n\t// that the server should watch changes.\n\twatchedGlobPatternsMu  sync.Mutex\n\twatchedGlobPatterns    map[string]struct{}\n\twatchRegistrationCount int\n\n\tdiagnosticsMu sync.Mutex\n\tdiagnostics   map[span.URI]*fileReports\n\n\t// gcOptimizationDetails describes the packages for which we want\n\t// optimization details to be included in the diagnostics. The key is the\n\t// directory of the package.\n\tgcOptimizationDetailsMu sync.Mutex\n\tgcOptimizationDetails   map[span.URI]struct{}\n\n\t// diagnosticsSema limits the concurrency of diagnostics runs, which can be\n\t// expensive.\n\tdiagnosticsSema chan struct{}\n\n\tprogress *progressTracker\n\n\t// debouncer is used for debouncing diagnostics.\n\tdebouncer *debouncer\n\n\t// When the workspace fails to load, we show its status through a progress\n\t// report with an error message.\n\tcriticalErrorStatusMu sync.Mutex\n\tcriticalErrorStatus   *workDone\n}\n\nfunc (s *Server) workDoneProgressCancel(ctx context.Context, params *protocol.WorkDoneProgressCancelParams) error {\n\treturn s.progress.cancel(ctx, params.Token)\n}\n\nfunc (s *Server) nonstandardRequest(ctx context.Context, method string, params interface{}) (interface{}, error) {\n\tswitch method {\n\tcase \"gopls/diagnoseFiles\":\n\t\tparamMap := params.(map[string]interface{})\n\t\tfor _, file := range paramMap[\"files\"].([]interface{}) {\n\t\t\tsnapshot, fh, ok, release, err := s.beginFileRequest(ctx, protocol.DocumentURI(file.(string)), source.UnknownKind)\n\t\t\tdefer release()\n\t\t\tif !ok {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tfileID, diagnostics, err := source.FileDiagnostics(ctx, snapshot, fh.URI())\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif err := s.client.PublishDiagnostics(ctx, &protocol.PublishDiagnosticsParams{\n\t\t\t\tURI:         protocol.URIFromSpanURI(fh.URI()),\n\t\t\t\tDiagnostics: toProtocolDiagnostics(diagnostics),\n\t\t\t\tVersion:     fileID.Version,\n\t\t\t}); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\tif err := s.client.PublishDiagnostics(ctx, &protocol.PublishDiagnosticsParams{\n\t\t\tURI: \"gopls://diagnostics-done\",\n\t\t}); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn struct{}{}, nil\n\t}\n\treturn nil, notImplemented(method)\n}\n\nfunc notImplemented(method string) error {\n\treturn errors.Errorf(\"%w: %q not yet implemented\", jsonrpc2.ErrMethodNotFound, method)\n}\n\n//go:generate helper/helper -d protocol/tsserver.go -o server_gen.go -u .\n"}}


[Trace - 22:15:08.432 PM] Received request 'window/workDoneProgress/create - (1)'.
Params: {"token":"5577006791947779410"}


[Trace - 22:15:08.432 PM] Sending response 'window/workDoneProgress/create - (1)' in 0ms.
Result: 


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


[Trace - 22:15:08.433 PM] Received request 'workspace/configuration - (2)'.
Params: {"items":[{"scopeUri":"file:///Users/rstambler/code/src/golang.org/x/tools","section":"gopls"}]}


[Trace - 22:15:08.437 PM] Sending response 'workspace/configuration - (2)' in 3ms.
Result: [{"ui.diagnostic.staticcheck":true,"allExperiments":true,"ui.codelenses":{"gc_details":false},"ui.semanticTokens":true,"experimentalWorkspaceModule":true}]


[Trace - 22:15:08.507 PM] Sending request 'textDocument/codeAction - (1)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"},"range":{"start":{"line":23,"character":72},"end":{"line":23,"character":72}},"context":{"diagnostics":[]}}


[Trace - 22:15:08.510 PM] Sending request 'textDocument/documentLink - (2)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"}}


[Trace - 22:15:08.537 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2021/01/09 22:15:08 go env for /Users/rstambler/code/src/golang.org/x/tools\n(root /Users/rstambler/code/src/golang.org/x/tools)\n(go version go version devel +b116404444 Wed Dec 23 17:31:18 2020 +0000 darwin/amd64)\n(valid build configuration = true)\n(build flags: [])\nGO111MODULE=auto\nGOFLAGS=\nGOMODCACHE=/Users/rstambler/code/pkg/mod\nGOPATH=/Users/rstambler/code\nGOROOT=/Users/rstambler/go\nGOCACHE=/Users/rstambler/Library/Caches/go-build\nGOINSECURE=\nGOPROXY=https://proxy.golang.org,direct\nGOMOD=/Users/rstambler/code/src/golang.org/x/tools/go.mod\nGOSUMDB=sum.golang.org\nGONOPROXY=\nGOPRIVATE=\nGONOSUMDB=\n\n"}


[Info  - 10:15:08 PM] 2021/01/09 22:15:08 go env for /Users/rstambler/code/src/golang.org/x/tools
(root /Users/rstambler/code/src/golang.org/x/tools)
(go version go version devel +b116404444 Wed Dec 23 17:31:18 2020 +0000 darwin/amd64)
(valid build configuration = true)
(build flags: [])
GO111MODULE=auto
GOFLAGS=
GOMODCACHE=/Users/rstambler/code/pkg/mod
GOPATH=/Users/rstambler/code
GOROOT=/Users/rstambler/go
GOCACHE=/Users/rstambler/Library/Caches/go-build
GOINSECURE=
GOPROXY=https://proxy.golang.org,direct
GOMOD=/Users/rstambler/code/src/golang.org/x/tools/go.mod
GOSUMDB=sum.golang.org
GONOPROXY=
GOPRIVATE=
GONOSUMDB=


[Trace - 22:15:08.708 PM] Sending request 'textDocument/foldingRange - (3)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"}}


[Trace - 22:15:08.857 PM] Sending request 'textDocument/codeLens - (4)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"}}


[Trace - 22:15:09.574 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2021/01/09 22:15:09 go/packages.Load\n\tsnapshot=0\n\tdirectory=/var/folders/c5/cdxx0hzn6v3cvfn42kwt2tj000crcx/T/gopls-workspace-mod173964454\n\tquery=[builtin golang.org/x/tools/... golang.org/x/tools/gopls/...]\n\tpackages=500\n"}


[Info  - 10:15:09 PM] 2021/01/09 22:15:09 go/packages.Load
	snapshot=0
	directory=/var/folders/c5/cdxx0hzn6v3cvfn42kwt2tj000crcx/T/gopls-workspace-mod173964454
	query=[builtin golang.org/x/tools/... golang.org/x/tools/gopls/...]
	packages=500

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


[Trace - 22:15:09.871 PM] Received request 'client/registerCapability - (3)'.
Params: {"registrations":[{"id":"workspace/didChangeWatchedFiles-0","method":"workspace/didChangeWatchedFiles","registerOptions":{"watchers":[{"globPattern":"{/Users/rstambler/code/src/golang.org/x/tools/benchmark,/Users/rstambler/code/src/golang.org/x/tools/benchmark/parse,/Users/rstambler/code/src/golang.org/x/tools/blog,/Users/rstambler/code/src/golang.org/x/tools/blog/atom,/Users/rstambler/code/src/golang.org/x/tools/cmd,/Users/rstambler/code/src/golang.org/x/tools/cmd/auth,/Users/rstambler/code/src/golang.org/x/tools/cmd/auth/authtest,/Users/rstambler/code/src/golang.org/x/tools/cmd/auth/cookieauth,/Users/rstambler/code/src/golang.org/x/tools/cmd/auth/gitauth,/Users/rstambler/code/src/golang.org/x/tools/cmd/auth/netrcauth,/Users/rstambler/code/src/golang.org/x/tools/cmd/benchcmp,/Users/rstambler/code/src/golang.org/x/tools/cmd/bundle,/Users/rstambler/code/src/golang.org/x/tools/cmd/callgraph,/Users/rstambler/code/src/golang.org/x/tools/cmd/compilebench,/Users/rstambler/code/src/golang.org/x/tools/cmd/cover,/Users/rstambler/code/src/golang.org/x/tools/cmd/digraph,/Users/rstambler/code/src/golang.org/x/tools/cmd/eg,/Users/rstambler/code/src/golang.org/x/tools/cmd/fiximports,/Users/rstambler/code/src/golang.org/x/tools/cmd/getgo,/Users/rstambler/code/src/golang.org/x/tools/cmd/getgo/server,/Users/rstambler/code/src/golang.org/x/tools/cmd/go-contrib-init,/Users/rstambler/code/src/golang.org/x/tools/cmd/godex,/Users/rstambler/code/src/golang.org/x/tools/cmd/godoc,/Users/rstambler/code/src/golang.org/x/tools/cmd/goimports,/Users/rstambler/code/src/golang.org/x/tools/cmd/gomvpkg,/Users/rstambler/code/src/golang.org/x/tools/cmd/gorename,/Users/rstambler/code/src/golang.org/x/tools/cmd/gotype,/Users/rstambler/code/src/golang.org/x/tools/cmd/goyacc,/Users/rstambler/code/src/golang.org/x/tools/cmd/guru,/Users/rstambler/code/src/golang.org/x/tools/cmd/guru/serial,/Users/rstambler/code/src/golang.org/x/tools/cmd/html2article,/Users/rstambler/code/src/golang.org/x/tools/cmd/present,/Users/rstambler/code/src/golang.org/x/tools/cmd/present2md,/Users/rstambler/code/src/golang.org/x/tools/cmd/splitdwarf,/Users/rstambler/code/src/golang.org/x/tools/cmd/splitdwarf/internal,/Users/rstambler/code/src/golang.org/x/tools/cmd/splitdwarf/internal/macho,/Users/rstambler/code/src/golang.org/x/tools/cmd/ssadump,/Users/rstambler/code/src/golang.org/x/tools/cmd/stress,/Users/rstambler/code/src/golang.org/x/tools/cmd/stringer,/Users/rstambler/code/src/golang.org/x/tools/cmd/toolstash,/Users/rstambler/code/src/golang.org/x/tools/container,/Users/rstambler/code/src/golang.org/x/tools/container/intsets,/Users/rstambler/code/src/golang.org/x/tools/copyright,/Users/rstambler/code/src/golang.org/x/tools/cover,/Users/rstambler/code/src/golang.org/x/tools/go,/Users/rstambler/code/src/golang.org/x/tools/go/analysis,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/analysistest,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/internal,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/internal/analysisflags,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/internal/checker,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/internal/facts,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/multichecker,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/asmdecl,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/assign,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/atomic,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/atomicalign,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/bools,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/buildssa,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/buildtag,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/cgocall,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/composite,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/copylock,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/ctrlflow,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/deepequalerrors,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/errorsas,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/fieldalignment,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/fieldalignment/cmd,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/fieldalignment/cmd/fieldalignment,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/findcall,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/findcall/cmd,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/findcall/cmd/findcall,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/framepointer,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/httpresponse,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/ifaceassert,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/ifaceassert/cmd,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/ifaceassert/cmd/ifaceassert,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/inspect,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/internal,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/internal/analysisutil,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/loopclosure,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/lostcancel,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/lostcancel/cmd,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/lostcancel/cmd/lostcancel,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/nilfunc,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/nilness,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/nilness/cmd,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/nilness/cmd/nilness,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/pkgfact,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/printf,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/shadow,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/shadow/cmd,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/shadow/cmd/shadow,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/shift,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/sortslice,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/stdmethods,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/stringintconv,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/stringintconv/cmd,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/stringintconv/cmd/stringintconv,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/structtag,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/testinggoroutine,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/tests,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/unmarshal,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/unmarshal/cmd,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/unmarshal/cmd/unmarshal,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/unreachable,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/unsafeptr,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/passes/unusedresult,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/singlechecker,/Users/rstambler/code/src/golang.org/x/tools/go/analysis/unitchecker,/Users/rstambler/code/src/golang.org/x/tools/go/ast,/Users/rstambler/code/src/golang.org/x/tools/go/ast/astutil,/Users/rstambler/code/src/golang.org/x/tools/go/ast/inspector,/Users/rstambler/code/src/golang.org/x/tools/go/buildutil,/Users/rstambler/code/src/golang.org/x/tools/go/callgraph,/Users/rstambler/code/src/golang.org/x/tools/go/callgraph/cha,/Users/rstambler/code/src/golang.org/x/tools/go/callgraph/rta,/Users/rstambler/code/src/golang.org/x/tools/go/callgraph/static,/Users/rstambler/code/src/golang.org/x/tools/go/cfg,/Users/rstambler/code/src/golang.org/x/tools/go/expect,/Users/rstambler/code/src/golang.org/x/tools/go/gccgoexportdata,/Users/rstambler/code/src/golang.org/x/tools/go/gcexportdata,/Users/rstambler/code/src/golang.org/x/tools/go/internal,/Users/rstambler/code/src/golang.org/x/tools/go/internal/cgo,/Users/rstambler/code/src/golang.org/x/tools/go/internal/gccgoimporter,/Users/rstambler/code/src/golang.org/x/tools/go/internal/gcimporter,/Users/rstambler/code/src/golang.org/x/tools/go/internal/packagesdriver,/Users/rstambler/code/src/golang.org/x/tools/go/loader,/Users/rstambler/code/src/golang.org/x/tools/go/packages,/Users/rstambler/code/src/golang.org/x/tools/go/packages/gopackages,/Users/rstambler/code/src/golang.org/x/tools/go/packages/packagestest,/Users/rstambler/code/src/golang.org/x/tools/go/pointer,/Users/rstambler/code/src/golang.org/x/tools/go/ssa,/Users/rstambler/code/src/golang.org/x/tools/go/ssa/interp,/Users/rstambler/code/src/golang.org/x/tools/go/ssa/ssautil,/Users/rstambler/code/src/golang.org/x/tools/go/types,/Users/rstambler/code/src/golang.org/x/tools/go/types/objectpath,/Users/rstambler/code/src/golang.org/x/tools/go/types/typeutil,/Users/rstambler/code/src/golang.org/x/tools/go/vcs,/Users/rstambler/code/src/golang.org/x/tools/godoc,/Users/rstambler/code/src/golang.org/x/tools/godoc/analysis,/Users/rstambler/code/src/golang.org/x/tools/godoc/golangorgenv,/Users/rstambler/code/src/golang.org/x/tools/godoc/redirect,/Users/rstambler/code/src/golang.org/x/tools/godoc/static,/Users/rstambler/code/src/golang.org/x/tools/godoc/util,/Users/rstambler/code/src/golang.org/x/tools/godoc/vfs,/Users/rstambler/code/src/golang.org/x/tools/godoc/vfs/gatefs,/Users/rstambler/code/src/golang.org/x/tools/godoc/vfs/httpfs,/Users/rstambler/code/src/golang.org/x/tools/godoc/vfs/mapfs,/Users/rstambler/code/src/golang.org/x/tools/godoc/vfs/zipfs,/Users/rstambler/code/src/golang.org/x/tools/gopls,/Users/rstambler/code/src/golang.org/x/tools/gopls/doc,/Users/rstambler/code/src/golang.org/x/tools/gopls/integration,/Users/rstambler/code/src/golang.org/x/tools/gopls/integration/govim,/Users/rstambler/code/src/golang.org/x/tools/gopls/integration/parse,/Users/rstambler/code/src/golang.org/x/tools/gopls/integration/replay,/Users/rstambler/code/src/golang.org/x/tools/gopls/internal,/Users/rstambler/code/src/golang.org/x/tools/gopls/internal/hooks,/Users/rstambler/code/src/golang.org/x/tools/gopls/internal/regtest,/Users/rstambler/code/src/golang.org/x/tools/gopls/release,/Users/rstambler/code/src/golang.org/x/tools/gopls/test,/Users/rstambler/code/src/golang.org/x/tools/gopls/test/debug,/Users/rstambler/code/src/golang.org/x/tools/imports,/Users/rstambler/code/src/golang.org/x/tools/internal,/Users/rstambler/code/src/golang.org/x/tools/internal/analysisinternal,/Users/rstambler/code/src/golang.org/x/tools/internal/apidiff,/Users/rstambler/code/src/golang.org/x/tools/internal/event,/Users/rstambler/code/src/golang.org/x/tools/internal/event/core,/Users/rstambler/code/src/golang.org/x/tools/internal/event/export,/Users/rstambler/code/src/golang.org/x/tools/internal/event/export/eventtest,/Users/rstambler/code/src/golang.org/x/tools/internal/event/export/metric,/Users/rstambler/code/src/golang.org/x/tools/internal/event/export/ocagent,/Users/rstambler/code/src/golang.org/x/tools/internal/event/export/ocagent/wire,/Users/rstambler/code/src/golang.org/x/tools/internal/event/export/prometheus,/Users/rstambler/code/src/golang.org/x/tools/internal/event/keys,/Users/rstambler/code/src/golang.org/x/tools/internal/event/label,/Users/rstambler/code/src/golang.org/x/tools/internal/fakenet,/Users/rstambler/code/src/golang.org/x/tools/internal/fastwalk,/Users/rstambler/code/src/golang.org/x/tools/internal/gocommand,/Users/rstambler/code/src/golang.org/x/tools/internal/gopathwalk,/Users/rstambler/code/src/golang.org/x/tools/internal/imports,/Users/rstambler/code/src/golang.org/x/tools/internal/jsonrpc2,/Users/rstambler/code/src/golang.org/x/tools/internal/jsonrpc2/servertest,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/analysis,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/analysis/fillreturns,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/analysis/fillstruct,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/analysis/nonewvars,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/analysis/noresultvalues,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/analysis/simplifycompositelit,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/analysis/simplifyrange,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/analysis/simplifyslice,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/analysis/undeclaredname,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/analysis/unusedparams,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/browser,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/cache,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/cmd,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/cmd/test,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/debug,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/debug/log,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/debug/tag,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/diff,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/diff/difftest,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/diff/myers,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/fake,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/fuzzy,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/helper,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/lsprpc,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/mod,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/protocol,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/snippet,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/source,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/source/completion,/Users/rstambler/code/src/golang.org/x/tools/internal/lsp/tests,/Users/rstambler/code/src/golang.org/x/tools/internal/memoize,/Users/rstambler/code/src/golang.org/x/tools/internal/packagesinternal,/Users/rstambler/code/src/golang.org/x/tools/internal/proxydir,/Users/rstambler/code/src/golang.org/x/tools/internal/span,/Users/rstambler/code/src/golang.org/x/tools/internal/stack,/Users/rstambler/code/src/golang.org/x/tools/internal/stack/gostacks,/Users/rstambler/code/src/golang.org/x/tools/internal/stack/stacktest,/Users/rstambler/code/src/golang.org/x/tools/internal/testenv,/Users/rstambler/code/src/golang.org/x/tools/internal/tool,/Users/rstambler/code/src/golang.org/x/tools/internal/typesinternal,/Users/rstambler/code/src/golang.org/x/tools/internal/xcontext,/Users/rstambler/code/src/golang.org/x/tools/playground,/Users/rstambler/code/src/golang.org/x/tools/playground/socket,/Users/rstambler/code/src/golang.org/x/tools/present,/Users/rstambler/code/src/golang.org/x/tools/refactor,/Users/rstambler/code/src/golang.org/x/tools/refactor/eg,/Users/rstambler/code/src/golang.org/x/tools/refactor/importgraph,/Users/rstambler/code/src/golang.org/x/tools/refactor/rename,/Users/rstambler/code/src/golang.org/x/tools/refactor/satisfy,/Users/rstambler/code/src/golang.org/x/tools/txtar}","kind":7},{"globPattern":"**/*.{go,mod,sum}","kind":7}]}}]}


[Trace - 22:15:09.919 PM] Sending response 'client/registerCapability - (3)' in 48ms.
Result: 


[Trace - 22:15:09.920 PM] Received request 'client/registerCapability - (4)'.
Params: {"registrations":[{"id":"workspace/didChangeConfiguration","method":"workspace/didChangeConfiguration"},{"id":"workspace/didChangeWorkspaceFolders","method":"workspace/didChangeWorkspaceFolders"},{"id":"textDocument/semanticTokens","method":"textDocument/semanticTokens","registerOptions":{"legend":{"tokenTypes":["namespace","type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","member","macro","keyword","modifier","comment","string","number","regexp","operator"],"tokenModifiers":["declaration","definition","readonly","static","deprecated","abstract","async","modification","documentation","defaultLibrary"]},"range":true,"full":true}}]}


[Trace - 22:15:09.922 PM] Sending response 'client/registerCapability - (4)' in 2ms.
Result: 


[Trace - 22:15:10.025 PM] Sending request 'textDocument/semanticTokens/range - (5)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"},"range":{"start":{"line":0,"character":0},"end":{"line":73,"character":80}}}


[Trace - 22:15:10.085 PM] Sending notification '$/cancelRequest'.
Params: {"id":1}


[Trace - 22:15:10.085 PM] Sending request 'textDocument/codeAction - (6)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"},"range":{"start":{"line":23,"character":72},"end":{"line":23,"character":72}},"context":{"diagnostics":[]}}


[Error - Received] 22:15:10.086 PM #1 context canceled


[Error - 10:15:10 PM] Request textDocument/codeAction failed.
  Message: context canceled
  Code: 0 
[Trace - 22:15:10.095 PM] Sending request 'textDocument/documentSymbol - (7)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"}}


[Trace - 22:15:10.224 PM] Sending request 'textDocument/semanticTokens/full - (8)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"}}


[Trace - 22:15:10.357 PM] Received response 'textDocument/documentLink - (2)' in 1847ms.
Result: [{"range":{"start":{"line":8,"character":2},"end":{"line":8,"character":9}},"target":"https://pkg.go.dev/context?utm_source=gopls"},{"range":{"start":{"line":9,"character":2},"end":{"line":9,"character":5}},"target":"https://pkg.go.dev/fmt?utm_source=gopls"},{"range":{"start":{"line":10,"character":2},"end":{"line":10,"character":6}},"target":"https://pkg.go.dev/sync?utm_source=gopls"},{"range":{"start":{"line":12,"character":2},"end":{"line":12,"character":38}},"target":"https://pkg.go.dev/golang.org/x/tools/internal/jsonrpc2?utm_source=gopls"},{"range":{"start":{"line":13,"character":2},"end":{"line":13,"character":42}},"target":"https://pkg.go.dev/golang.org/x/tools/internal/lsp/protocol?utm_source=gopls"},{"range":{"start":{"line":14,"character":2},"end":{"line":14,"character":40}},"target":"https://pkg.go.dev/golang.org/x/tools/internal/lsp/source?utm_source=gopls"},{"range":{"start":{"line":15,"character":2},"end":{"line":15,"character":34}},"target":"https://pkg.go.dev/golang.org/x/tools/internal/span?utm_source=gopls"},{"range":{"start":{"line":16,"character":9},"end":{"line":16,"character":29}},"target":"https://pkg.go.dev/golang.org/x/xerrors@v0.0.0-20200804184101-5ec99f83aff1?utm_source=gopls"}]


[Trace - 22:15:10.358 PM] Received response 'textDocument/foldingRange - (3)' in 1650ms.
Result: [{"startLine":0,"startCharacter":54,"endLine":2,"endCharacter":49,"kind":"comment"},{"startLine":7,"startCharacter":8,"endLine":16,"endCharacter":30,"kind":"imports"},{"startLine":21,"startCharacter":73,"endLine":22,"endCharacter":38,"kind":"comment"},{"startLine":23,"startCharacter":72,"endLine":34,"endCharacter":2},{"startLine":24,"startCharacter":16,"endLine":33,"endCharacter":39},{"startLine":39,"startCharacter":7,"endLine":43,"endCharacter":15},{"startLine":46,"startCharacter":38,"endLine":57,"endCharacter":50},{"startLine":47,"startCharacter":11,"endLine":55,"endCharacter":19},{"startLine":48,"startCharacter":20,"endLine":49,"endCharacter":18},{"startLine":50,"startCharacter":25,"endLine":51,"endCharacter":23},{"startLine":52,"startCharacter":24,"endLine":53,"endCharacter":22},{"startLine":54,"startCharacter":21,"endLine":55,"endCharacter":19},{"startLine":61,"startCharacter":20,"endLine":109,"endCharacter":32},{"startLine":77,"startCharacter":75,"endLine":78,"endCharacter":55,"kind":"comment"},{"startLine":81,"startCharacter":74,"endLine":83,"endCharacter":41,"kind":"comment"},{"startLine":91,"startCharacter":66,"endLine":93,"endCharacter":29,"kind":"comment"},{"startLine":97,"startCharacter":76,"endLine":98,"endCharacter":14,"kind":"comment"},{"startLine":106,"startCharacter":75,"endLine":107,"endCharacter":33,"kind":"comment"},{"startLine":112,"startCharacter":115,"endLine":113,"endCharacter":44},{"startLine":116,"startCharacter":114,"endLine":146,"endCharacter":35},{"startLine":117,"startCharacter":16,"endLine":144,"endCharacter":24},{"startLine":118,"startCharacter":28,"endLine":144,"endCharacter":24},{"startLine":120,"startCharacter":58,"endLine":137,"endCharacter":4},{"startLine":123,"startCharacter":11,"endLine":124,"endCharacter":19},{"startLine":128,"startCharacter":18,"endLine":129,"endCharacter":19},{"startLine":131,"startCharacter":41,"endLine":135,"endCharacter":4},{"startLine":131,"startCharacter":81,"endLine":134,"endCharacter":31},{"startLine":135,"startCharacter":19,"endLine":136,"endCharacter":19},{"startLine":139,"startCharacter":40,"endLine":141,"endCharacter":3},{"startLine":139,"startCharacter":80,"endLine":140,"endCharacter":34},{"startLine":141,"startCharacter":18,"endLine":142,"endCharacter":18},{"startLine":149,"startCharacter":42,"endLine":150,"endCharacter":87}]


[Trace - 22:15:10.358 PM] Received response 'textDocument/codeLens - (4)' in 1500ms.
Result: [{"range":{"start":{"line":153,"character":0},"end":{"line":153,"character":13}},"command":{"title":"run go generate","command":"gopls.generate","arguments":["file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp",false]}},{"range":{"start":{"line":153,"character":0},"end":{"line":153,"character":13}},"command":{"title":"run go generate ./...","command":"gopls.generate","arguments":["file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp",true]}}]


[Trace - 22:15:10.359 PM] Received response 'textDocument/semanticTokens/range - (5)' in 334ms.
Result: {"resultId":"2021-01-09 22:15:10.359439 -0500 EST m=+1.989618718","data":[5,0,7,15,0,0,8,3,0,0,2,0,6,15,0,1,2,7,0,0,1,2,3,0,0,1,2,4,0,0,2,30,8,0,0,1,34,8,0,0,1,34,6,0,0,1,30,4,0,0,1,1,6,0,0,3,0,5,15,0,0,6,18,8,6,0,21,1,19,0,4,0,4,15,0,0,5,9,12,2,0,10,7,7,2,0,8,6,0,0,0,7,7,1,0,0,9,6,7,2,0,7,8,0,0,0,9,6,1,0,0,8,1,21,0,0,1,6,1,0,1,1,6,15,0,0,7,1,21,0,0,1,6,1,0,1,2,11,8,0,0,23,3,15,0,0,4,4,0,0,0,5,3,1,0,0,4,1,21,0,0,1,11,1,0,1,2,21,8,0,0,23,4,12,512,0,5,3,15,0,0,4,4,0,0,0,5,3,1,0,0,4,6,15,0,1,2,19,8,0,0,23,4,12,512,0,5,3,15,0,0,4,6,1,0,0,7,6,15,0,1,2,12,8,0,0,23,4,12,512,0,5,3,15,0,0,4,4,0,0,0,5,3,1,0,0,4,6,15,0,1,2,7,8,0,0,23,7,8,0,1,2,6,8,0,0,23,6,8,0,1,2,15,8,0,0,23,4,12,512,0,5,4,15,0,0,5,6,15,0,0,10,18,8,4,1,2,8,8,0,0,23,18,12,0,0,19,6,8,0,1,2,9,8,0,0,23,12,12,0,4,0,4,15,0,0,5,11,1,2,0,12,3,1,0,2,0,5,15,0,1,1,13,8,6,0,21,11,1,0,0,12,4,8,4,1,1,18,8,6,1,1,17,8,6,1,1,14,8,6,3,0,4,15,0,0,6,1,8,0,0,2,11,1,0,0,13,6,13,2,0,9,6,1,0,1,1,6,15,0,0,7,1,8,0,1,1,4,15,0,0,5,13,8,4,1,2,6,15,0,0,7,9,18,0,1,1,4,15,0,0,5,18,8,4,1,2,6,15,0,0,7,14,18,0,1,1,4,15,0,0,5,17,8,4,1,2,6,15,0,0,7,13,18,0,1,1,4,15,0,0,5,14,8,4,1,2,6,15,0,0,7,10,18,0,2,1,6,15,0,0,7,3,0,0,0,4,7,12,0,0,8,21,18,0,0,23,3,1,0,0,4,1,8,0,4,0,4,15,0,0,5,6,1,2,0,7,6,15,0,1,1,6,1,2,0,7,8,0,0,0,9,6,1,0,2,1,7,1,2,0,8,4,0,0,0,5,5,1,0,1,1,5,1,2,0,8,11,1,0,2,1,7,1,2,0,10,6,0,0,0,7,7,1,0,1,1,9,1,2,0,10,3,1,0,3,1,13,1,2,0,16,1,21,0,0,1,8,0,0,0,9,17,1,0]}


[Trace - 22:15:10.363 PM] Received response 'textDocument/codeAction - (6)' in 277ms.
Result: null


[Trace - 22:15:10.364 PM] Received response 'textDocument/documentSymbol - (7)' in 269ms.
Result: [{"name":"concurrentAnalyses","detail":"untyped int","kind":14,"range":{"start":{"line":19,"character":0},"end":{"line":19,"character":28}},"selectionRange":{"start":{"line":19,"character":6},"end":{"line":19,"character":24}}},{"name":"NewServer","detail":"(session source.Session, client protocol.Client)","kind":12,"range":{"start":{"line":23,"character":0},"end":{"line":35,"character":1}},"selectionRange":{"start":{"line":23,"character":5},"end":{"line":23,"character":14}}},{"name":"serverState","detail":"int","kind":16,"range":{"start":{"line":37,"character":5},"end":{"line":37,"character":20}},"selectionRange":{"start":{"line":37,"character":5},"end":{"line":37,"character":16}}},{"name":"serverCreated","detail":"serverState","kind":14,"range":{"start":{"line":39,"character":0},"end":{"line":44,"character":1}},"selectionRange":{"start":{"line":40,"character":1},"end":{"line":40,"character":14}}},{"name":"serverInitializing","detail":"serverState","kind":14,"range":{"start":{"line":39,"character":0},"end":{"line":44,"character":1}},"selectionRange":{"start":{"line":41,"character":1},"end":{"line":41,"character":19}}},{"name":"serverInitialized","detail":"serverState","kind":14,"range":{"start":{"line":39,"character":0},"end":{"line":44,"character":1}},"selectionRange":{"start":{"line":42,"character":1},"end":{"line":42,"character":18}}},{"name":"serverShutDown","detail":"serverState","kind":14,"range":{"start":{"line":39,"character":0},"end":{"line":44,"character":1}},"selectionRange":{"start":{"line":43,"character":1},"end":{"line":43,"character":15}}},{"name":"(serverState).String","detail":"()","kind":6,"range":{"start":{"line":46,"character":0},"end":{"line":58,"character":1}},"selectionRange":{"start":{"line":46,"character":21},"end":{"line":46,"character":27}}},{"name":"Server","detail":"struct{...}","kind":23,"range":{"start":{"line":61,"character":5},"end":{"line":110,"character":1}},"selectionRange":{"start":{"line":61,"character":5},"end":{"line":61,"character":11}},"children":[{"name":"client","detail":"interface{...}","kind":8,"range":{"start":{"line":62,"character":1},"end":{"line":62,"character":23}},"selectionRange":{"start":{"line":62,"character":1},"end":{"line":62,"character":7}}},{"name":"stateMu","detail":"struct{...}","kind":8,"range":{"start":{"line":64,"character":1},"end":{"line":64,"character":19}},"selectionRange":{"start":{"line":64,"character":1},"end":{"line":64,"character":8}}},{"name":"state","detail":"int","kind":8,"range":{"start":{"line":65,"character":1},"end":{"line":65,"character":20}},"selectionRange":{"start":{"line":65,"character":1},"end":{"line":65,"character":6}}},{"name":"session","detail":"interface{...}","kind":8,"range":{"start":{"line":67,"character":1},"end":{"line":67,"character":25}},"selectionRange":{"start":{"line":67,"character":1},"end":{"line":67,"character":8}}},{"name":"clientPID","detail":"int","kind":8,"range":{"start":{"line":68,"character":1},"end":{"line":68,"character":14}},"selectionRange":{"start":{"line":68,"character":1},"end":{"line":68,"character":10}}},{"name":"notifications","detail":"[]*protocol.ShowMessageParams","kind":8,"range":{"start":{"line":71,"character":1},"end":{"line":71,"character":44}},"selectionRange":{"start":{"line":71,"character":1},"end":{"line":71,"character":14}}},{"name":"changedFilesMu","detail":"struct{...}","kind":8,"range":{"start":{"line":74,"character":1},"end":{"line":74,"character":26}},"selectionRange":{"start":{"line":74,"character":1},"end":{"line":74,"character":15}}},{"name":"changedFiles","detail":"map[span.URI]struct{}","kind":8,"range":{"start":{"line":75,"character":1},"end":{"line":75,"character":37}},"selectionRange":{"start":{"line":75,"character":1},"end":{"line":75,"character":13}}},{"name":"pendingFolders","detail":"[]protocol.WorkspaceFolder","kind":8,"range":{"start":{"line":79,"character":1},"end":{"line":79,"character":42}},"selectionRange":{"start":{"line":79,"character":1},"end":{"line":79,"character":15}}},{"name":"watchedGlobPatternsMu","detail":"struct{...}","kind":8,"range":{"start":{"line":84,"character":1},"end":{"line":84,"character":34}},"selectionRange":{"start":{"line":84,"character":1},"end":{"line":84,"character":22}}},{"name":"watchedGlobPatterns","detail":"map[string]struct{}","kind":8,"range":{"start":{"line":85,"character":1},"end":{"line":85,"character":43}},"selectionRange":{"start":{"line":85,"character":1},"end":{"line":85,"character":20}}},{"name":"watchRegistrationCount","detail":"int","kind":8,"range":{"start":{"line":86,"character":1},"end":{"line":86,"character":27}},"selectionRange":{"start":{"line":86,"character":1},"end":{"line":86,"character":23}}},{"name":"diagnosticsMu","detail":"struct{...}","kind":8,"range":{"start":{"line":88,"character":1},"end":{"line":88,"character":25}},"selectionRange":{"start":{"line":88,"character":1},"end":{"line":88,"character":14}}},{"name":"diagnostics","detail":"map[span.URI]*fileReports","kind":8,"range":{"start":{"line":89,"character":1},"end":{"line":89,"character":40}},"selectionRange":{"start":{"line":89,"character":1},"end":{"line":89,"character":12}}},{"name":"gcOptimizationDetailsMu","detail":"struct{...}","kind":8,"range":{"start":{"line":94,"character":1},"end":{"line":94,"character":35}},"selectionRange":{"start":{"line":94,"character":1},"end":{"line":94,"character":24}}},{"name":"gcOptimizationDetails","detail":"map[span.URI]struct{}","kind":8,"range":{"start":{"line":95,"character":1},"end":{"line":95,"character":46}},"selectionRange":{"start":{"line":95,"character":1},"end":{"line":95,"character":22}}},{"name":"diagnosticsSema","detail":"chan struct{}","kind":8,"range":{"start":{"line":99,"character":1},"end":{"line":99,"character":30}},"selectionRange":{"start":{"line":99,"character":1},"end":{"line":99,"character":16}}},{"name":"progress","detail":"*progressTracker","kind":8,"range":{"start":{"line":101,"character":1},"end":{"line":101,"character":26}},"selectionRange":{"start":{"line":101,"character":1},"end":{"line":101,"character":9}}},{"name":"debouncer","detail":"*debouncer","kind":8,"range":{"start":{"line":104,"character":1},"end":{"line":104,"character":21}},"selectionRange":{"start":{"line":104,"character":1},"end":{"line":104,"character":10}}},{"name":"criticalErrorStatusMu","detail":"struct{...}","kind":8,"range":{"start":{"line":108,"character":1},"end":{"line":108,"character":33}},"selectionRange":{"start":{"line":108,"character":1},"end":{"line":108,"character":22}}},{"name":"criticalErrorStatus","detail":"*workDone","kind":8,"range":{"start":{"line":109,"character":1},"end":{"line":109,"character":32}},"selectionRange":{"start":{"line":109,"character":1},"end":{"line":109,"character":20}}}]},{"name":"(*Server).workDoneProgressCancel","detail":"(ctx context.Context, params *protocol.WorkDoneProgressCancelParams)","kind":6,"range":{"start":{"line":112,"character":0},"end":{"line":114,"character":1}},"selectionRange":{"start":{"line":112,"character":17},"end":{"line":112,"character":39}}},{"name":"(*Server).nonstandardRequest","detail":"(ctx context.Context, method string, params interface{})","kind":6,"range":{"start":{"line":116,"character":0},"end":{"line":147,"character":1}},"selectionRange":{"start":{"line":116,"character":17},"end":{"line":116,"character":35}}},{"name":"notImplemented","detail":"(method string)","kind":12,"range":{"start":{"line":149,"character":0},"end":{"line":151,"character":1}},"selectionRange":{"start":{"line":149,"character":5},"end":{"line":149,"character":19}}}]


[Trace - 22:15:10.365 PM] Received response 'textDocument/semanticTokens/full - (8)' in 140ms.
Result: {"resultId":"2021-01-09 22:15:10.365433 -0500 EST m=+1.995612894","data":[5,0,7,15,0,0,8,3,0,0,2,0,6,15,0,1,2,7,0,0,1,2,3,0,0,1,2,4,0,0,2,30,8,0,0,1,34,8,0,0,1,34,6,0,0,1,30,4,0,0,1,1,6,0,0,3,0,5,15,0,0,6,18,8,6,0,21,1,19,0,4,0,4,15,0,0,5,9,12,2,0,10,7,7,2,0,8,6,0,0,0,7,7,1,0,0,9,6,7,2,0,7,8,0,0,0,9,6,1,0,0,8,1,21,0,0,1,6,1,0,1,1,6,15,0,0,7,1,21,0,0,1,6,1,0,1,2,11,8,0,0,23,3,15,0,0,4,4,0,0,0,5,3,1,0,0,4,1,21,0,0,1,11,1,0,1,2,21,8,0,0,23,4,12,512,0,5,3,15,0,0,4,4,0,0,0,5,3,1,0,0,4,6,15,0,1,2,19,8,0,0,23,4,12,512,0,5,3,15,0,0,4,6,1,0,0,7,6,15,0,1,2,12,8,0,0,23,4,12,512,0,5,3,15,0,0,4,4,0,0,0,5,3,1,0,0,4,6,15,0,1,2,7,8,0,0,23,7,8,0,1,2,6,8,0,0,23,6,8,0,1,2,15,8,0,0,23,4,12,512,0,5,4,15,0,0,5,6,15,0,0,10,18,8,4,1,2,8,8,0,0,23,18,12,0,0,19,6,8,0,1,2,9,8,0,0,23,12,12,0,4,0,4,15,0,0,5,11,1,2,0,12,3,1,0,2,0,5,15,0,1,1,13,8,6,0,21,11,1,0,0,12,4,8,4,1,1,18,8,6,1,1,17,8,6,1,1,14,8,6,3,0,4,15,0,0,6,1,8,0,0,2,11,1,0,0,13,6,13,2,0,9,6,1,0,1,1,6,15,0,0,7,1,8,0,1,1,4,15,0,0,5,13,8,4,1,2,6,15,0,0,7,9,18,0,1,1,4,15,0,0,5,18,8,4,1,2,6,15,0,0,7,14,18,0,1,1,4,15,0,0,5,17,8,4,1,2,6,15,0,0,7,13,18,0,1,1,4,15,0,0,5,14,8,4,1,2,6,15,0,0,7,10,18,0,2,1,6,15,0,0,7,3,0,0,0,4,7,12,0,0,8,21,18,0,0,23,3,1,0,0,4,1,8,0,4,0,4,15,0,0,5,6,1,2,0,7,6,15,0,1,1,6,1,2,0,7,8,0,0,0,9,6,1,0,2,1,7,1,2,0,8,4,0,0,0,5,5,1,0,1,1,5,1,2,0,8,11,1,0,2,1,7,1,2,0,10,6,0,0,0,7,7,1,0,1,1,9,1,2,0,10,3,1,0,3,1,13,1,2,0,16,1,21,0,0,1,8,0,0,0,9,17,1,0,3,1,14,1,2,0,15,4,0,0,0,5,5,1,0,1,1,12,1,2,0,15,3,15,0,0,4,4,0,0,0,5,3,1,0,0,4,6,15,0,4,1,14,1,2,0,17,8,0,0,0,9,15,1,0,5,1,21,1,2,0,23,4,0,0,0,5,5,1,0,1,1,19,1,2,0,23,3,15,0,0,4,6,1,0,0,7,6,15,0,1,1,22,1,2,0,23,3,1,0,2,1,13,1,2,0,14,4,0,0,0,5,5,1,0,1,1,11,1,2,0,14,3,15,0,0,4,4,0,0,0,5,3,1,0,0,4,1,21,0,0,1,11,1,0,5,1,23,1,2,0,24,4,0,0,0,5,5,1,0,1,1,21,1,2,0,24,3,15,0,0,4,4,0,0,0,5,3,1,0,0,4,6,15,0,4,1,15,1,2,0,16,4,15,0,0,5,6,15,0,2,1,8,1,2,0,9,1,21,0,0,1,15,1,0,3,1,9,1,2,0,10,1,21,0,0,1,9,1,0,4,1,21,1,2,0,22,4,0,0,0,5,5,1,0,1,1,19,1,2,0,22,1,21,0,0,1,8,1,0,3,0,4,15,0,0,6,1,8,0,0,2,1,21,0,0,1,6,1,0,0,8,22,13,2,0,23,3,7,2,0,4,7,0,0,0,8,7,1,0,0,9,6,7,2,0,7,1,21,0,0,1,8,0,0,0,9,28,1,0,0,30,5,1,0,1,1,6,15,0,0,7,1,8,0,0,2,8,8,0,0,9,6,12,0,0,7,3,8,0,0,5,6,8,0,0,7,5,8,0,3,0,4,15,0,0,6,1,8,0,0,2,1,21,0,0,1,6,1,0,0,8,18,13,2,0,19,3,7,2,0,4,7,0,0,0,8,7,1,0,0,9,6,7,2,0,7,6,1,0,0,8,6,7,2,0,7,9,15,0,0,14,9,15,0,0,13,5,1,0,1,1,6,15,0,0,7,6,8,0,1,1,4,15,0,0,5,21,18,0,1,2,8,8,2,0,9,2,21,0,0,3,6,8,0,0,8,3,15,0,0,4,6,1,0,0,7,9,15,0,1,2,3,15,0,0,7,4,8,2,0,8,5,15,0,0,6,8,8,0,0,9,7,18,0,0,12,9,15,0,1,3,8,8,2,0,10,2,8,2,0,4,2,8,2,0,4,7,8,2,0,9,3,8,2,0,4,2,21,0,0,3,1,8,0,0,2,16,12,0,0,17,3,8,0,0,5,8,0,0,0,9,11,1,0,0,12,4,8,0,0,6,6,1,0,0,10,6,0,0,0,7,11,8,4,1,3,5,15,0,0,6,7,8,0,1,3,2,15,0,0,3,1,21,0,0,1,2,8,0,1,4,6,15,0,0,7,3,8,4,0,5,3,8,0,3,3,6,8,2,0,8,11,8,2,0,13,3,8,0,0,4,2,21,0,0,3,6,0,0,0,7,15,12,0,0,16,3,8,0,0,5,8,8,0,0,10,2,8,0,0,3,3,12,0,1,3,2,15,0,0,3,3,8,0,0,4,2,21,0,0,3,3,8,4,1,4,6,15,0,0,7,3,8,4,0,5,3,8,0,2,3,2,15,0,0,3,3,8,2,0,4,2,21,0,0,3,1,8,0,0,2,6,8,0,0,7,18,12,0,0,19,3,8,0,0,5,1,21,0,0,1,8,0,0,0,9,24,1,0,1,4,3,8,0,0,13,8,0,0,0,9,14,12,0,0,15,2,8,0,0,3,3,12,0,1,4,11,8,0,0,13,21,12,0,0,22,11,8,0,1,4,7,8,0,0,13,6,8,0,0,7,7,8,0,1,7,3,8,0,0,4,2,21,0,0,3,3,8,4,1,4,6,15,0,0,7,3,8,4,0,5,3,8,0,3,2,2,15,0,0,3,3,8,2,0,4,2,21,0,0,3,1,8,0,0,2,6,8,0,0,7,18,12,0,0,19,3,8,0,0,5,1,21,0,0,1,8,0,0,0,9,24,1,0,1,3,3,8,0,0,5,26,18,0,1,6,3,8,0,0,4,2,21,0,0,3,3,8,4,1,3,6,15,0,0,7,3,8,4,0,5,3,8,0,2,2,6,15,0,0,7,6,15,0,0,12,3,8,4,2,1,6,15,0,0,7,3,8,4,0,5,14,12,0,0,15,6,8,0,3,0,4,15,0,0,5,14,12,2,0,15,6,7,2,0,7,6,1,0,0,8,5,1,0,1,1,6,15,0,0,7,6,0,0,0,7,6,12,0,0,7,28,18,0,0,30,8,0,0,0,9,17,8,0,0,19,6,8,0]}


[Trace - 22:15:10.389 PM] Sending request 'textDocument/codeLens - (9)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"}}


[Trace - 22:15:10.390 PM] Received response 'textDocument/codeLens - (9)' in 0ms.
Result: [{"range":{"start":{"line":153,"character":0},"end":{"line":153,"character":13}},"command":{"title":"run go generate","command":"gopls.generate","arguments":["file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp",false]}},{"range":{"start":{"line":153,"character":0},"end":{"line":153,"character":13}},"command":{"title":"run go generate ./...","command":"gopls.generate","arguments":["file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp",true]}}]


[Trace - 22:15:10.678 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/code_action.go","diagnostics":[{"range":{"start":{"line":364,"character":16},"end":{"line":364,"character":35}},"severity":2,"source":"unusedparams","message":"potentially unused parameter: 'ctx'"},{"range":{"start":{"line":430,"character":35},"end":{"line":430,"character":54}},"severity":2,"source":"unusedparams","message":"potentially unused parameter: 'ctx'"},{"range":{"start":{"line":460,"character":68},"end":{"line":460,"character":86}},"severity":2,"source":"unusedparams","message":"potentially unused parameter: 'pkg'"}]}


[Trace - 22:15:10.678 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/diagnostics.go","diagnostics":[{"range":{"start":{"line":536,"character":61},"end":{"line":536,"character":72}},"severity":2,"source":"unusedparams","message":"potentially unused parameter: 'path'"}]}


[Trace - 22:15:10.678 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/link.go","diagnostics":[{"range":{"start":{"line":172,"character":21},"end":{"line":172,"character":40}},"severity":2,"source":"unusedparams","message":"potentially unused parameter: 'ctx'"},{"range":{"start":{"line":172,"character":42},"end":{"line":172,"character":66}},"severity":2,"source":"unusedparams","message":"potentially unused parameter: 'snapshot'"},{"range":{"start":{"line":187,"character":23},"end":{"line":187,"character":42}},"severity":2,"source":"unusedparams","message":"potentially unused parameter: 'ctx'"}]}


[Trace - 22:15:11.476 PM] Sending notification 'textDocument/didChange'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go","version":2},"contentChanges":[{"range":{"start":{"line":23,"character":72},"end":{"line":23,"character":72}},"rangeLength":0,"text":"\n\t"}]}


[Trace - 22:15:11.654 PM] Sending request 'textDocument/foldingRange - (10)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"}}


[Trace - 22:15:11.655 PM] Received response 'textDocument/foldingRange - (10)' in 0ms.
Result: [{"startLine":0,"startCharacter":54,"endLine":2,"endCharacter":49,"kind":"comment"},{"startLine":7,"startCharacter":8,"endLine":16,"endCharacter":30,"kind":"imports"},{"startLine":21,"startCharacter":73,"endLine":22,"endCharacter":38,"kind":"comment"},{"startLine":23,"startCharacter":72,"endLine":35,"endCharacter":2},{"startLine":25,"startCharacter":16,"endLine":34,"endCharacter":39},{"startLine":40,"startCharacter":7,"endLine":44,"endCharacter":15},{"startLine":47,"startCharacter":38,"endLine":58,"endCharacter":50},{"startLine":48,"startCharacter":11,"endLine":56,"endCharacter":19},{"startLine":49,"startCharacter":20,"endLine":50,"endCharacter":18},{"startLine":51,"startCharacter":25,"endLine":52,"endCharacter":23},{"startLine":53,"startCharacter":24,"endLine":54,"endCharacter":22},{"startLine":55,"startCharacter":21,"endLine":56,"endCharacter":19},{"startLine":62,"startCharacter":20,"endLine":110,"endCharacter":32},{"startLine":78,"startCharacter":75,"endLine":79,"endCharacter":55,"kind":"comment"},{"startLine":82,"startCharacter":74,"endLine":84,"endCharacter":41,"kind":"comment"},{"startLine":92,"startCharacter":66,"endLine":94,"endCharacter":29,"kind":"comment"},{"startLine":98,"startCharacter":76,"endLine":99,"endCharacter":14,"kind":"comment"},{"startLine":107,"startCharacter":75,"endLine":108,"endCharacter":33,"kind":"comment"},{"startLine":113,"startCharacter":115,"endLine":114,"endCharacter":44},{"startLine":117,"startCharacter":114,"endLine":147,"endCharacter":35},{"startLine":118,"startCharacter":16,"endLine":145,"endCharacter":24},{"startLine":119,"startCharacter":28,"endLine":145,"endCharacter":24},{"startLine":121,"startCharacter":58,"endLine":138,"endCharacter":4},{"startLine":124,"startCharacter":11,"endLine":125,"endCharacter":19},{"startLine":129,"startCharacter":18,"endLine":130,"endCharacter":19},{"startLine":132,"startCharacter":41,"endLine":136,"endCharacter":4},{"startLine":132,"startCharacter":81,"endLine":135,"endCharacter":31},{"startLine":136,"startCharacter":19,"endLine":137,"endCharacter":19},{"startLine":140,"startCharacter":40,"endLine":142,"endCharacter":3},{"startLine":140,"startCharacter":80,"endLine":141,"endCharacter":34},{"startLine":142,"startCharacter":18,"endLine":143,"endCharacter":18},{"startLine":150,"startCharacter":42,"endLine":151,"endCharacter":87}]


[Trace - 22:15:11.767 PM] Sending notification 'textDocument/didChange'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go","version":3},"contentChanges":[{"range":{"start":{"line":24,"character":1},"end":{"line":24,"character":1}},"rangeLength":0,"text":"\tdebug.Version"}]}


[Trace - 22:15:11.767 PM] Sending notification 'textDocument/didChange'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go","version":4},"contentChanges":[{"range":{"start":{"line":24,"character":0},"end":{"line":24,"character":2}},"rangeLength":2,"text":"\t"}]}


[Trace - 22:15:11.779 PM] Sending request 'textDocument/semanticTokens/full - (11)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"}}


[Trace - 22:15:11.864 PM] Received response 'textDocument/semanticTokens/full - (11)' in 85ms.
Result: {"resultId":"2021-01-09 22:15:11.864706 -0500 EST m=+3.494857282","data":[5,0,7,15,0,0,8,3,0,0,2,0,6,15,0,1,2,7,0,0,1,2,3,0,0,1,2,4,0,0,2,30,8,0,0,1,34,8,0,0,1,34,6,0,0,1,30,4,0,0,1,1,6,0,0,3,0,5,15,0,0,6,18,8,6,0,21,1,19,0,4,0,4,15,0,0,5,9,12,2,0,10,7,7,2,0,8,6,0,0,0,7,7,1,0,0,9,6,7,2,0,7,8,0,0,0,9,6,1,0,0,8,1,21,0,0,1,6,1,0,1,1,5,8,2,0,6,7,8,2,1,1,6,15,0,0,7,1,21,0,0,1,6,1,0,1,2,11,8,0,0,23,3,15,0,0,4,4,0,0,0,5,3,1,0,0,4,1,21,0,0,1,11,1,0,1,2,21,8,0,0,23,4,12,512,0,5,3,15,0,0,4,4,0,0,0,5,3,1,0,0,4,6,15,0,1,2,19,8,0,0,23,4,12,512,0,5,3,15,0,0,4,6,1,0,0,7,6,15,0,1,2,12,8,0,0,23,4,12,512,0,5,3,15,0,0,4,4,0,0,0,5,3,1,0,0,4,6,15,0,1,2,7,8,0,0,23,7,8,0,1,2,6,8,0,0,23,6,8,0,1,2,15,8,0,0,23,4,12,512,0,5,4,15,0,0,5,6,15,0,0,10,18,8,4,1,2,8,8,0,0,23,18,12,0,0,19,6,8,0,1,2,9,8,0,0,23,12,12,0,4,0,4,15,0,0,5,11,1,2,0,12,3,1,0,2,0,5,15,0,1,1,13,8,6,0,21,11,1,0,0,12,4,8,4,1,1,18,8,6,1,1,17,8,6,1,1,14,8,6,3,0,4,15,0,0,6,1,8,0,0,2,11,1,0,0,13,6,13,2,0,9,6,1,0,1,1,6,15,0,0,7,1,8,0,1,1,4,15,0,0,5,13,8,4,1,2,6,15,0,0,7,9,18,0,1,1,4,15,0,0,5,18,8,4,1,2,6,15,0,0,7,14,18,0,1,1,4,15,0,0,5,17,8,4,1,2,6,15,0,0,7,13,18,0,1,1,4,15,0,0,5,14,8,4,1,2,6,15,0,0,7,10,18,0,2,1,6,15,0,0,7,3,0,0,0,4,7,12,0,0,8,21,18,0,0,23,3,1,0,0,4,1,8,0,4,0,4,15,0,0,5,6,1,2,0,7,6,15,0,1,1,6,1,2,0,7,8,0,0,0,9,6,1,0,2,1,7,1,2,0,8,4,0,0,0,5,5,1,0,1,1,5,1,2,0,8,11,1,0,2,1,7,1,2,0,10,6,0,0,0,7,7,1,0,1,1,9,1,2,0,10,3,1,0,3,1,13,1,2,0,16,1,21,0,0,1,8,0,0,0,9,17,1,0,3,1,14,1,2,0,15,4,0,0,0,5,5,1,0,1,1,12,1,2,0,15,3,15,0,0,4,4,0,0,0,5,3,1,0,0,4,6,15,0,4,1,14,1,2,0,17,8,0,0,0,9,15,1,0,5,1,21,1,2,0,23,4,0,0,0,5,5,1,0,1,1,19,1,2,0,23,3,15,0,0,4,6,1,0,0,7,6,15,0,1,1,22,1,2,0,23,3,1,0,2,1,13,1,2,0,14,4,0,0,0,5,5,1,0,1,1,11,1,2,0,14,3,15,0,0,4,4,0,0,0,5,3,1,0,0,4,1,21,0,0,1,11,1,0,5,1,23,1,2,0,24,4,0,0,0,5,5,1,0,1,1,21,1,2,0,24,3,15,0,0,4,4,0,0,0,5,3,1,0,0,4,6,15,0,4,1,15,1,2,0,16,4,15,0,0,5,6,15,0,2,1,8,1,2,0,9,1,21,0,0,1,15,1,0,3,1,9,1,2,0,10,1,21,0,0,1,9,1,0,4,1,21,1,2,0,22,4,0,0,0,5,5,1,0,1,1,19,1,2,0,22,1,21,0,0,1,8,1,0,3,0,4,15,0,0,6,1,8,0,0,2,1,21,0,0,1,6,1,0,0,8,22,13,2,0,23,3,7,2,0,4,7,0,0,0,8,7,1,0,0,9,6,7,2,0,7,1,21,0,0,1,8,0,0,0,9,28,1,0,0,30,5,1,0,1,1,6,15,0,0,7,1,8,0,0,2,8,8,0,0,9,6,12,0,0,7,3,8,0,0,5,6,8,0,0,7,5,8,0,3,0,4,15,0,0,6,1,8,0,0,2,1,21,0,0,1,6,1,0,0,8,18,13,2,0,19,3,7,2,0,4,7,0,0,0,8,7,1,0,0,9,6,7,2,0,7,6,1,0,0,8,6,7,2,0,7,9,15,0,0,14,9,15,0,0,13,5,1,0,1,1,6,15,0,0,7,6,8,0,1,1,4,15,0,0,5,21,18,0,1,2,8,8,2,0,9,2,21,0,0,3,6,8,0,0,8,3,15,0,0,4,6,1,0,0,7,9,15,0,1,2,3,15,0,0,7,4,8,2,0,8,5,15,0,0,6,8,8,0,0,9,7,18,0,0,12,9,15,0,1,3,8,8,2,0,10,2,8,2,0,4,2,8,2,0,4,7,8,2,0,9,3,8,2,0,4,2,21,0,0,3,1,8,0,0,2,16,12,0,0,17,3,8,0,0,5,8,0,0,0,9,11,1,0,0,12,4,8,0,0,6,6,1,0,0,10,6,0,0,0,7,11,8,4,1,3,5,15,0,0,6,7,8,0,1,3,2,15,0,0,3,1,21,0,0,1,2,8,0,1,4,6,15,0,0,7,3,8,4,0,5,3,8,0,3,3,6,8,2,0,8,11,8,2,0,13,3,8,0,0,4,2,21,0,0,3,6,0,0,0,7,15,12,0,0,16,3,8,0,0,5,8,8,0,0,10,2,8,0,0,3,3,12,0,1,3,2,15,0,0,3,3,8,0,0,4,2,21,0,0,3,3,8,4,1,4,6,15,0,0,7,3,8,4,0,5,3,8,0,2,3,2,15,0,0,3,3,8,2,0,4,2,21,0,0,3,1,8,0,0,2,6,8,0,0,7,18,12,0,0,19,3,8,0,0,5,1,21,0,0,1,8,0,0,0,9,24,1,0,1,4,3,8,0,0,13,8,0,0,0,9,14,12,0,0,15,2,8,0,0,3,3,12,0,1,4,11,8,0,0,13,21,12,0,0,22,11,8,0,1,4,7,8,0,0,13,6,8,0,0,7,7,8,0,1,7,3,8,0,0,4,2,21,0,0,3,3,8,4,1,4,6,15,0,0,7,3,8,4,0,5,3,8,0,3,2,2,15,0,0,3,3,8,2,0,4,2,21,0,0,3,1,8,0,0,2,6,8,0,0,7,18,12,0,0,19,3,8,0,0,5,1,21,0,0,1,8,0,0,0,9,24,1,0,1,3,3,8,0,0,5,26,18,0,1,6,3,8,0,0,4,2,21,0,0,3,3,8,4,1,3,6,15,0,0,7,3,8,4,0,5,3,8,0,2,2,6,15,0,0,7,6,15,0,0,12,3,8,4,2,1,6,15,0,0,7,3,8,4,0,5,14,12,0,0,15,6,8,0,3,0,4,15,0,0,5,14,12,2,0,15,6,7,2,0,7,6,1,0,0,8,5,1,0,1,1,6,15,0,0,7,6,0,0,0,7,6,12,0,0,7,28,18,0,0,30,8,0,0,0,9,17,8,0,0,19,6,8,0]}


[Trace - 22:15:11.887 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/diagnostics.go","diagnostics":[]}


[Trace - 22:15:11.888 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go","version":4,"diagnostics":[{"range":{"start":{"line":24,"character":1},"end":{"line":24,"character":6}},"severity":1,"source":"compiler","message":"undeclared name: debug"}]}


[Trace - 22:15:11.888 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/code_action.go","diagnostics":[]}


[Trace - 22:15:11.888 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/link.go","diagnostics":[]}


[Trace - 22:15:11.966 PM] Sending request 'textDocument/foldingRange - (12)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"}}


[Trace - 22:15:11.967 PM] Received response 'textDocument/foldingRange - (12)' in 0ms.
Result: [{"startLine":0,"startCharacter":54,"endLine":2,"endCharacter":49,"kind":"comment"},{"startLine":7,"startCharacter":8,"endLine":16,"endCharacter":30,"kind":"imports"},{"startLine":21,"startCharacter":73,"endLine":22,"endCharacter":38,"kind":"comment"},{"startLine":23,"startCharacter":72,"endLine":35,"endCharacter":2},{"startLine":25,"startCharacter":16,"endLine":34,"endCharacter":39},{"startLine":40,"startCharacter":7,"endLine":44,"endCharacter":15},{"startLine":47,"startCharacter":38,"endLine":58,"endCharacter":50},{"startLine":48,"startCharacter":11,"endLine":56,"endCharacter":19},{"startLine":49,"startCharacter":20,"endLine":50,"endCharacter":18},{"startLine":51,"startCharacter":25,"endLine":52,"endCharacter":23},{"startLine":53,"startCharacter":24,"endLine":54,"endCharacter":22},{"startLine":55,"startCharacter":21,"endLine":56,"endCharacter":19},{"startLine":62,"startCharacter":20,"endLine":110,"endCharacter":32},{"startLine":78,"startCharacter":75,"endLine":79,"endCharacter":55,"kind":"comment"},{"startLine":82,"startCharacter":74,"endLine":84,"endCharacter":41,"kind":"comment"},{"startLine":92,"startCharacter":66,"endLine":94,"endCharacter":29,"kind":"comment"},{"startLine":98,"startCharacter":76,"endLine":99,"endCharacter":14,"kind":"comment"},{"startLine":107,"startCharacter":75,"endLine":108,"endCharacter":33,"kind":"comment"},{"startLine":113,"startCharacter":115,"endLine":114,"endCharacter":44},{"startLine":117,"startCharacter":114,"endLine":147,"endCharacter":35},{"startLine":118,"startCharacter":16,"endLine":145,"endCharacter":24},{"startLine":119,"startCharacter":28,"endLine":145,"endCharacter":24},{"startLine":121,"startCharacter":58,"endLine":138,"endCharacter":4},{"startLine":124,"startCharacter":11,"endLine":125,"endCharacter":19},{"startLine":129,"startCharacter":18,"endLine":130,"endCharacter":19},{"startLine":132,"startCharacter":41,"endLine":136,"endCharacter":4},{"startLine":132,"startCharacter":81,"endLine":135,"endCharacter":31},{"startLine":136,"startCharacter":19,"endLine":137,"endCharacter":19},{"startLine":140,"startCharacter":40,"endLine":142,"endCharacter":3},{"startLine":140,"startCharacter":80,"endLine":141,"endCharacter":34},{"startLine":142,"startCharacter":18,"endLine":143,"endCharacter":18},{"startLine":150,"startCharacter":42,"endLine":151,"endCharacter":87}]


[Trace - 22:15:12.146 PM] Sending request 'textDocument/codeAction - (13)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"},"range":{"start":{"line":24,"character":14},"end":{"line":24,"character":14}},"context":{"diagnostics":[]}}


[Trace - 22:15:12.164 PM] Sending request 'textDocument/documentSymbol - (14)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"}}


[Trace - 22:15:12.454 PM] Sending request 'textDocument/documentLink - (15)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"}}


[Trace - 22:15:12.581 PM] Sending request 'textDocument/codeAction - (16)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"},"range":{"start":{"line":0,"character":0},"end":{"line":155,"character":0}},"context":{"diagnostics":[{"range":{"start":{"line":24,"character":1},"end":{"line":24,"character":6}},"message":"undeclared name: debug","severity":1,"source":"compiler"}],"only":["source.fixAll"]}}


[Trace - 22:15:12.769 PM] Sending request 'textDocument/codeLens - (17)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"}}


[Trace - 22:15:13.188 PM] Received response 'textDocument/codeAction - (13)' in 1042ms.
Result: null


[Trace - 22:15:13.189 PM] Received response 'textDocument/documentSymbol - (14)' in 1024ms.
Result: [{"name":"concurrentAnalyses","detail":"untyped int","kind":14,"range":{"start":{"line":19,"character":0},"end":{"line":19,"character":28}},"selectionRange":{"start":{"line":19,"character":6},"end":{"line":19,"character":24}}},{"name":"NewServer","detail":"(session source.Session, client protocol.Client)","kind":12,"range":{"start":{"line":23,"character":0},"end":{"line":36,"character":1}},"selectionRange":{"start":{"line":23,"character":5},"end":{"line":23,"character":14}}},{"name":"serverState","detail":"int","kind":16,"range":{"start":{"line":38,"character":5},"end":{"line":38,"character":20}},"selectionRange":{"start":{"line":38,"character":5},"end":{"line":38,"character":16}}},{"name":"serverCreated","detail":"serverState","kind":14,"range":{"start":{"line":40,"character":0},"end":{"line":45,"character":1}},"selectionRange":{"start":{"line":41,"character":1},"end":{"line":41,"character":14}}},{"name":"serverInitializing","detail":"serverState","kind":14,"range":{"start":{"line":40,"character":0},"end":{"line":45,"character":1}},"selectionRange":{"start":{"line":42,"character":1},"end":{"line":42,"character":19}}},{"name":"serverInitialized","detail":"serverState","kind":14,"range":{"start":{"line":40,"character":0},"end":{"line":45,"character":1}},"selectionRange":{"start":{"line":43,"character":1},"end":{"line":43,"character":18}}},{"name":"serverShutDown","detail":"serverState","kind":14,"range":{"start":{"line":40,"character":0},"end":{"line":45,"character":1}},"selectionRange":{"start":{"line":44,"character":1},"end":{"line":44,"character":15}}},{"name":"(serverState).String","detail":"()","kind":6,"range":{"start":{"line":47,"character":0},"end":{"line":59,"character":1}},"selectionRange":{"start":{"line":47,"character":21},"end":{"line":47,"character":27}}},{"name":"Server","detail":"struct{...}","kind":23,"range":{"start":{"line":62,"character":5},"end":{"line":111,"character":1}},"selectionRange":{"start":{"line":62,"character":5},"end":{"line":62,"character":11}},"children":[{"name":"client","detail":"interface{...}","kind":8,"range":{"start":{"line":63,"character":1},"end":{"line":63,"character":23}},"selectionRange":{"start":{"line":63,"character":1},"end":{"line":63,"character":7}}},{"name":"stateMu","detail":"struct{...}","kind":8,"range":{"start":{"line":65,"character":1},"end":{"line":65,"character":19}},"selectionRange":{"start":{"line":65,"character":1},"end":{"line":65,"character":8}}},{"name":"state","detail":"int","kind":8,"range":{"start":{"line":66,"character":1},"end":{"line":66,"character":20}},"selectionRange":{"start":{"line":66,"character":1},"end":{"line":66,"character":6}}},{"name":"session","detail":"interface{...}","kind":8,"range":{"start":{"line":68,"character":1},"end":{"line":68,"character":25}},"selectionRange":{"start":{"line":68,"character":1},"end":{"line":68,"character":8}}},{"name":"clientPID","detail":"int","kind":8,"range":{"start":{"line":69,"character":1},"end":{"line":69,"character":14}},"selectionRange":{"start":{"line":69,"character":1},"end":{"line":69,"character":10}}},{"name":"notifications","detail":"[]*protocol.ShowMessageParams","kind":8,"range":{"start":{"line":72,"character":1},"end":{"line":72,"character":44}},"selectionRange":{"start":{"line":72,"character":1},"end":{"line":72,"character":14}}},{"name":"changedFilesMu","detail":"struct{...}","kind":8,"range":{"start":{"line":75,"character":1},"end":{"line":75,"character":26}},"selectionRange":{"start":{"line":75,"character":1},"end":{"line":75,"character":15}}},{"name":"changedFiles","detail":"map[span.URI]struct{}","kind":8,"range":{"start":{"line":76,"character":1},"end":{"line":76,"character":37}},"selectionRange":{"start":{"line":76,"character":1},"end":{"line":76,"character":13}}},{"name":"pendingFolders","detail":"[]protocol.WorkspaceFolder","kind":8,"range":{"start":{"line":80,"character":1},"end":{"line":80,"character":42}},"selectionRange":{"start":{"line":80,"character":1},"end":{"line":80,"character":15}}},{"name":"watchedGlobPatternsMu","detail":"struct{...}","kind":8,"range":{"start":{"line":85,"character":1},"end":{"line":85,"character":34}},"selectionRange":{"start":{"line":85,"character":1},"end":{"line":85,"character":22}}},{"name":"watchedGlobPatterns","detail":"map[string]struct{}","kind":8,"range":{"start":{"line":86,"character":1},"end":{"line":86,"character":43}},"selectionRange":{"start":{"line":86,"character":1},"end":{"line":86,"character":20}}},{"name":"watchRegistrationCount","detail":"int","kind":8,"range":{"start":{"line":87,"character":1},"end":{"line":87,"character":27}},"selectionRange":{"start":{"line":87,"character":1},"end":{"line":87,"character":23}}},{"name":"diagnosticsMu","detail":"struct{...}","kind":8,"range":{"start":{"line":89,"character":1},"end":{"line":89,"character":25}},"selectionRange":{"start":{"line":89,"character":1},"end":{"line":89,"character":14}}},{"name":"diagnostics","detail":"map[span.URI]*fileReports","kind":8,"range":{"start":{"line":90,"character":1},"end":{"line":90,"character":40}},"selectionRange":{"start":{"line":90,"character":1},"end":{"line":90,"character":12}}},{"name":"gcOptimizationDetailsMu","detail":"struct{...}","kind":8,"range":{"start":{"line":95,"character":1},"end":{"line":95,"character":35}},"selectionRange":{"start":{"line":95,"character":1},"end":{"line":95,"character":24}}},{"name":"gcOptimizationDetails","detail":"map[span.URI]struct{}","kind":8,"range":{"start":{"line":96,"character":1},"end":{"line":96,"character":46}},"selectionRange":{"start":{"line":96,"character":1},"end":{"line":96,"character":22}}},{"name":"diagnosticsSema","detail":"chan struct{}","kind":8,"range":{"start":{"line":100,"character":1},"end":{"line":100,"character":30}},"selectionRange":{"start":{"line":100,"character":1},"end":{"line":100,"character":16}}},{"name":"progress","detail":"*progressTracker","kind":8,"range":{"start":{"line":102,"character":1},"end":{"line":102,"character":26}},"selectionRange":{"start":{"line":102,"character":1},"end":{"line":102,"character":9}}},{"name":"debouncer","detail":"*debouncer","kind":8,"range":{"start":{"line":105,"character":1},"end":{"line":105,"character":21}},"selectionRange":{"start":{"line":105,"character":1},"end":{"line":105,"character":10}}},{"name":"criticalErrorStatusMu","detail":"struct{...}","kind":8,"range":{"start":{"line":109,"character":1},"end":{"line":109,"character":33}},"selectionRange":{"start":{"line":109,"character":1},"end":{"line":109,"character":22}}},{"name":"criticalErrorStatus","detail":"*workDone","kind":8,"range":{"start":{"line":110,"character":1},"end":{"line":110,"character":32}},"selectionRange":{"start":{"line":110,"character":1},"end":{"line":110,"character":20}}}]},{"name":"(*Server).workDoneProgressCancel","detail":"(ctx context.Context, params *protocol.WorkDoneProgressCancelParams)","kind":6,"range":{"start":{"line":113,"character":0},"end":{"line":115,"character":1}},"selectionRange":{"start":{"line":113,"character":17},"end":{"line":113,"character":39}}},{"name":"(*Server).nonstandardRequest","detail":"(ctx context.Context, method string, params interface{})","kind":6,"range":{"start":{"line":117,"character":0},"end":{"line":148,"character":1}},"selectionRange":{"start":{"line":117,"character":17},"end":{"line":117,"character":35}}},{"name":"notImplemented","detail":"(method string)","kind":12,"range":{"start":{"line":150,"character":0},"end":{"line":152,"character":1}},"selectionRange":{"start":{"line":150,"character":5},"end":{"line":150,"character":19}}}]


[Trace - 22:15:13.191 PM] Received response 'textDocument/documentLink - (15)' in 736ms.
Result: [{"range":{"start":{"line":8,"character":2},"end":{"line":8,"character":9}},"target":"https://pkg.go.dev/context?utm_source=gopls"},{"range":{"start":{"line":9,"character":2},"end":{"line":9,"character":5}},"target":"https://pkg.go.dev/fmt?utm_source=gopls"},{"range":{"start":{"line":10,"character":2},"end":{"line":10,"character":6}},"target":"https://pkg.go.dev/sync?utm_source=gopls"},{"range":{"start":{"line":12,"character":2},"end":{"line":12,"character":38}},"target":"https://pkg.go.dev/golang.org/x/tools/internal/jsonrpc2?utm_source=gopls"},{"range":{"start":{"line":13,"character":2},"end":{"line":13,"character":42}},"target":"https://pkg.go.dev/golang.org/x/tools/internal/lsp/protocol?utm_source=gopls"},{"range":{"start":{"line":14,"character":2},"end":{"line":14,"character":40}},"target":"https://pkg.go.dev/golang.org/x/tools/internal/lsp/source?utm_source=gopls"},{"range":{"start":{"line":15,"character":2},"end":{"line":15,"character":34}},"target":"https://pkg.go.dev/golang.org/x/tools/internal/span?utm_source=gopls"},{"range":{"start":{"line":16,"character":9},"end":{"line":16,"character":29}},"target":"https://pkg.go.dev/golang.org/x/xerrors@v0.0.0-20200804184101-5ec99f83aff1?utm_source=gopls"}]


[Trace - 22:15:13.192 PM] Received response 'textDocument/codeAction - (16)' in 610ms.
Result: null


[Trace - 22:15:13.192 PM] Received response 'textDocument/codeLens - (17)' in 422ms.
Result: [{"range":{"start":{"line":154,"character":0},"end":{"line":154,"character":13}},"command":{"title":"run go generate","command":"gopls.generate","arguments":["file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp",false]}},{"range":{"start":{"line":154,"character":0},"end":{"line":154,"character":13}},"command":{"title":"run go generate ./...","command":"gopls.generate","arguments":["file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp",true]}}]


[Trace - 22:15:13.195 PM] Sending request 'textDocument/codeAction - (18)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"},"range":{"start":{"line":0,"character":0},"end":{"line":155,"character":0}},"context":{"diagnostics":[{"range":{"start":{"line":24,"character":1},"end":{"line":24,"character":6}},"message":"undeclared name: debug","severity":1,"source":"compiler"}],"only":["source.organizeImports"]}}


[Trace - 22:15:13.224 PM] Received response 'textDocument/codeAction - (18)' in 29ms.
Result: null


[Trace - 22:15:13.227 PM] Sending request 'textDocument/formatting - (19)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"},"options":{"tabSize":4,"insertSpaces":false}}


[Trace - 22:15:13.229 PM] Received response 'textDocument/formatting - (19)' in 1ms.
Result: []


[Trace - 22:15:13.261 PM] Sending notification 'textDocument/didSave'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go","version":4}}


[Trace - 22:15:13.647 PM] Sending notification 'workspace/didChangeWatchedFiles'.
Params: {"changes":[{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go","type":2},{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go","type":2}]}


[Trace - 22:15:15.664 PM] Sending request 'textDocument/documentSymbol - (20)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"}}


[Trace - 22:15:15.665 PM] Received response 'textDocument/documentSymbol - (20)' in 0ms.
Result: [{"name":"concurrentAnalyses","detail":"untyped int","kind":14,"range":{"start":{"line":19,"character":0},"end":{"line":19,"character":28}},"selectionRange":{"start":{"line":19,"character":6},"end":{"line":19,"character":24}}},{"name":"NewServer","detail":"(session source.Session, client protocol.Client)","kind":12,"range":{"start":{"line":23,"character":0},"end":{"line":36,"character":1}},"selectionRange":{"start":{"line":23,"character":5},"end":{"line":23,"character":14}}},{"name":"serverState","detail":"int","kind":16,"range":{"start":{"line":38,"character":5},"end":{"line":38,"character":20}},"selectionRange":{"start":{"line":38,"character":5},"end":{"line":38,"character":16}}},{"name":"serverCreated","detail":"serverState","kind":14,"range":{"start":{"line":40,"character":0},"end":{"line":45,"character":1}},"selectionRange":{"start":{"line":41,"character":1},"end":{"line":41,"character":14}}},{"name":"serverInitializing","detail":"serverState","kind":14,"range":{"start":{"line":40,"character":0},"end":{"line":45,"character":1}},"selectionRange":{"start":{"line":42,"character":1},"end":{"line":42,"character":19}}},{"name":"serverInitialized","detail":"serverState","kind":14,"range":{"start":{"line":40,"character":0},"end":{"line":45,"character":1}},"selectionRange":{"start":{"line":43,"character":1},"end":{"line":43,"character":18}}},{"name":"serverShutDown","detail":"serverState","kind":14,"range":{"start":{"line":40,"character":0},"end":{"line":45,"character":1}},"selectionRange":{"start":{"line":44,"character":1},"end":{"line":44,"character":15}}},{"name":"(serverState).String","detail":"()","kind":6,"range":{"start":{"line":47,"character":0},"end":{"line":59,"character":1}},"selectionRange":{"start":{"line":47,"character":21},"end":{"line":47,"character":27}}},{"name":"Server","detail":"struct{...}","kind":23,"range":{"start":{"line":62,"character":5},"end":{"line":111,"character":1}},"selectionRange":{"start":{"line":62,"character":5},"end":{"line":62,"character":11}},"children":[{"name":"client","detail":"interface{...}","kind":8,"range":{"start":{"line":63,"character":1},"end":{"line":63,"character":23}},"selectionRange":{"start":{"line":63,"character":1},"end":{"line":63,"character":7}}},{"name":"stateMu","detail":"struct{...}","kind":8,"range":{"start":{"line":65,"character":1},"end":{"line":65,"character":19}},"selectionRange":{"start":{"line":65,"character":1},"end":{"line":65,"character":8}}},{"name":"state","detail":"int","kind":8,"range":{"start":{"line":66,"character":1},"end":{"line":66,"character":20}},"selectionRange":{"start":{"line":66,"character":1},"end":{"line":66,"character":6}}},{"name":"session","detail":"interface{...}","kind":8,"range":{"start":{"line":68,"character":1},"end":{"line":68,"character":25}},"selectionRange":{"start":{"line":68,"character":1},"end":{"line":68,"character":8}}},{"name":"clientPID","detail":"int","kind":8,"range":{"start":{"line":69,"character":1},"end":{"line":69,"character":14}},"selectionRange":{"start":{"line":69,"character":1},"end":{"line":69,"character":10}}},{"name":"notifications","detail":"[]*protocol.ShowMessageParams","kind":8,"range":{"start":{"line":72,"character":1},"end":{"line":72,"character":44}},"selectionRange":{"start":{"line":72,"character":1},"end":{"line":72,"character":14}}},{"name":"changedFilesMu","detail":"struct{...}","kind":8,"range":{"start":{"line":75,"character":1},"end":{"line":75,"character":26}},"selectionRange":{"start":{"line":75,"character":1},"end":{"line":75,"character":15}}},{"name":"changedFiles","detail":"map[span.URI]struct{}","kind":8,"range":{"start":{"line":76,"character":1},"end":{"line":76,"character":37}},"selectionRange":{"start":{"line":76,"character":1},"end":{"line":76,"character":13}}},{"name":"pendingFolders","detail":"[]protocol.WorkspaceFolder","kind":8,"range":{"start":{"line":80,"character":1},"end":{"line":80,"character":42}},"selectionRange":{"start":{"line":80,"character":1},"end":{"line":80,"character":15}}},{"name":"watchedGlobPatternsMu","detail":"struct{...}","kind":8,"range":{"start":{"line":85,"character":1},"end":{"line":85,"character":34}},"selectionRange":{"start":{"line":85,"character":1},"end":{"line":85,"character":22}}},{"name":"watchedGlobPatterns","detail":"map[string]struct{}","kind":8,"range":{"start":{"line":86,"character":1},"end":{"line":86,"character":43}},"selectionRange":{"start":{"line":86,"character":1},"end":{"line":86,"character":20}}},{"name":"watchRegistrationCount","detail":"int","kind":8,"range":{"start":{"line":87,"character":1},"end":{"line":87,"character":27}},"selectionRange":{"start":{"line":87,"character":1},"end":{"line":87,"character":23}}},{"name":"diagnosticsMu","detail":"struct{...}","kind":8,"range":{"start":{"line":89,"character":1},"end":{"line":89,"character":25}},"selectionRange":{"start":{"line":89,"character":1},"end":{"line":89,"character":14}}},{"name":"diagnostics","detail":"map[span.URI]*fileReports","kind":8,"range":{"start":{"line":90,"character":1},"end":{"line":90,"character":40}},"selectionRange":{"start":{"line":90,"character":1},"end":{"line":90,"character":12}}},{"name":"gcOptimizationDetailsMu","detail":"struct{...}","kind":8,"range":{"start":{"line":95,"character":1},"end":{"line":95,"character":35}},"selectionRange":{"start":{"line":95,"character":1},"end":{"line":95,"character":24}}},{"name":"gcOptimizationDetails","detail":"map[span.URI]struct{}","kind":8,"range":{"start":{"line":96,"character":1},"end":{"line":96,"character":46}},"selectionRange":{"start":{"line":96,"character":1},"end":{"line":96,"character":22}}},{"name":"diagnosticsSema","detail":"chan struct{}","kind":8,"range":{"start":{"line":100,"character":1},"end":{"line":100,"character":30}},"selectionRange":{"start":{"line":100,"character":1},"end":{"line":100,"character":16}}},{"name":"progress","detail":"*progressTracker","kind":8,"range":{"start":{"line":102,"character":1},"end":{"line":102,"character":26}},"selectionRange":{"start":{"line":102,"character":1},"end":{"line":102,"character":9}}},{"name":"debouncer","detail":"*debouncer","kind":8,"range":{"start":{"line":105,"character":1},"end":{"line":105,"character":21}},"selectionRange":{"start":{"line":105,"character":1},"end":{"line":105,"character":10}}},{"name":"criticalErrorStatusMu","detail":"struct{...}","kind":8,"range":{"start":{"line":109,"character":1},"end":{"line":109,"character":33}},"selectionRange":{"start":{"line":109,"character":1},"end":{"line":109,"character":22}}},{"name":"criticalErrorStatus","detail":"*workDone","kind":8,"range":{"start":{"line":110,"character":1},"end":{"line":110,"character":32}},"selectionRange":{"start":{"line":110,"character":1},"end":{"line":110,"character":20}}}]},{"name":"(*Server).workDoneProgressCancel","detail":"(ctx context.Context, params *protocol.WorkDoneProgressCancelParams)","kind":6,"range":{"start":{"line":113,"character":0},"end":{"line":115,"character":1}},"selectionRange":{"start":{"line":113,"character":17},"end":{"line":113,"character":39}}},{"name":"(*Server).nonstandardRequest","detail":"(ctx context.Context, method string, params interface{})","kind":6,"range":{"start":{"line":117,"character":0},"end":{"line":148,"character":1}},"selectionRange":{"start":{"line":117,"character":17},"end":{"line":117,"character":35}}},{"name":"notImplemented","detail":"(method string)","kind":12,"range":{"start":{"line":150,"character":0},"end":{"line":152,"character":1}},"selectionRange":{"start":{"line":150,"character":5},"end":{"line":150,"character":19}}}]


[Trace - 22:15:17.813 PM] Sending request 'textDocument/codeLens - (21)'.
Params: {"textDocument":{"uri":"file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp/server.go"}}


[Trace - 22:15:17.814 PM] Received response 'textDocument/codeLens - (21)' in 0ms.
Result: [{"range":{"start":{"line":154,"character":0},"end":{"line":154,"character":13}},"command":{"title":"run go generate","command":"gopls.generate","arguments":["file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp",false]}},{"range":{"start":{"line":154,"character":0},"end":{"line":154,"character":13}},"command":{"title":"run go generate ./...","command":"gopls.generate","arguments":["file:///Users/rstambler/code/src/golang.org/x/tools/internal/lsp",true]}}]


@gopherbot
Copy link
Contributor

Change https://golang.org/cl/283172 mentions this issue: internal/imports: handle un-downloaded modules

@heschi heschi changed the title x/tools/internal/imports: does not consider exported variables x/tools/internal/imports: breaks when gopls specifies GOPROXY=off Jan 11, 2021
@stamblerre stamblerre modified the milestones: Unreleased, gopls/v0.6.3 Jan 12, 2021
rinchsan pushed a commit to rinchsan/gosimports that referenced this issue May 30, 2021
Now that gopls is passing GOPROXY=off, running go list -m gives an error
if any modules aren't downloaded. We need to pass -e to get results for
the modules that we do have. Also add the missing error handling that
resulted in silent failure. That, in turn, reveals that we need to
explicitly ignore an expected error.

Fixes golang/go#43333.

Change-Id: I77604650b67a3c480d8231c65f0486f22e4a6722
Reviewed-on: https://go-review.googlesource.com/c/tools/+/283172
Trust: Heschi Kreinick <heschi@google.com>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
@golang golang locked and limited conversation to collaborators Jan 12, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge 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

4 participants