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: single file erroneously full of "undeclared name: X" errors (and more!) #33608

Closed
peterbourgon opened this issue Aug 12, 2019 · 22 comments
Labels
FrozenDueToAge gopls Issues related to the Go language server, gopls.
Milestone

Comments

@peterbourgon
Copy link

peterbourgon commented Aug 12, 2019

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

$ go version
go version go1.12.6 darwin/amd64

$ gopls version
golang.org/x/tools/gopls v0.1.2
    golang.org/x/tools/gopls@v0.1.3 h1:CB5ECiPysqZrwxcyRjN+exyZpY0gODTZvNiqQi3lpeo=

Does this issue reproduce with the latest release?

I believe so.

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

go env Output
$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/peter/Library/Caches/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/peter"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/Cellar/go/1.12.6/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.12.6/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/peter/mod/plasma/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/8s/kvkb2dzx37n057vk54y9b_ym0000gn/T/go-build417011332=/tmp/go-build -gno-record-gcc-switches -fno-common"

What did you do?

I was working in a modules-based project, and reviewing an existing file, pkg/api/public.go. I created a new test file in the same package, contracts_test.go. I opened the file and wrote

package api

func TestContract_foo_BarBaz(t *testing.T) {

}

And saved the file. At some point between creating the new file and saving it, the public.go file I had been reading became full of red squiggles, each under a variety of identifiers for things defined in the same package, but another file, util.go: things like ErrFoo, or unexportedFunctions. Each of the errors suggested the identifier was not defined.

I ran gopls ... check on public.go at this point and got the following complete output: gist.

I opened the util.go file in the same package and confirmed the identifiers existed. When I went back to public.go, the red squiggles under the identifiers declared in the util.go file were gone, and now the only red squiggle was under an identifier for a type in another package, with the same error. Command-clicking on the identifier, however, brought me to the proper declaration in the other package.

Confused, I clicked back into public.go, and discovered: (a) the red squiggle under the identifier I had just clicked on was gone; (b) several other files in the same package which were not previously red (errored) had become red; and (c) there were several brand new red squiggles under all sorts of identifiers in public.go that had no common theme. For example, some code:

r := mux.NewRouter() // this is github.comgorilla/mux
// ...
s.Handler = r // s.Handler being of type http.Handler

had a red squiggle under r, the right hand side of the assignment, claiming "cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP."

At this point I ran gopls ... check on public.go again and got the following complete output: gist. (I think it is identical to before.)

I then captured the following output from gopls debug log in VS Code: gist.

I then decided I spent enough time whacking moles and ran pkill gopls. Within a second, all red files returned to their normal color, and all red squiggles went away.

@gopherbot gopherbot added this to the Unreleased milestone Aug 12, 2019
@gopherbot gopherbot added the gopls Issues related to the Go language server, gopls. label Aug 12, 2019
@peterbourgon peterbourgon changed the title x/tools/gopls: single file erroneously full of "undeclared name: X" errors x/tools/gopls: single file erroneously full of "undeclared name: X" errors (and more!) Aug 12, 2019
@stamblerre
Copy link
Contributor

Thank you for the detailed report.

What you're describing really sounds like race conditions being hit. We do know that gopls has race conditions, which we are in the process of fixing, but you really shouldn't be able to trigger them unless you are typing/working extremely fast.

What editor are you using gopls with?
Do you find gopls to be slow?

@stoicAlchemist
Copy link

I'm currently having this issue too. My versions are:

go: 1.12.7
gopls: 0.1.3
Editor: NeoVim, using gopls through CoC.nvim
OS: Mac OSX

Declaring a new type on another file yields this same error even when the package is the same.

@peterbourgon
Copy link
Author

What you're describing really sounds like race conditions being hit. We do know that gopls has race conditions, which we are in the process of fixing, but you really shouldn't be able to trigger them unless you are typing/working extremely fast.

I don't consider myself that fast of a typist :) I'm surprised these reports aren't common for you. I experience this class of bug and need to restart gopls on a very regular interval. With the usual caveats about how humans are bad at estimation, I would estimate this kind of thing happens about once per hour of programming.

What editor are you using gopls with?

Version: 1.37.0
Commit: 036a6b1d3ac84e5ca96a17a44e63a87971f8fcc8
Date: 2019-08-08T01:22:37.660Z
Electron: 4.2.7
Chrome: 69.0.3497.128
Node.js: 10.11.0
V8: 6.9.427.31-electron.0
OS: Darwin x64 18.7.0

Do you find gopls to be slow?

Generally not, and even at it's worst, it's never as bad as I've seen some other users describe in GitHub issues. Sometimes click-to-definition takes... a full second, maybe? That's about as bad as it gets.

@zikaeroh
Copy link
Contributor

I get this sometimes as well. This morning I got it without any user input, simply by opening my project. Reloading fixed it (so I'd be in the camp that agrees with it being some race).

(I also experience periodic slowness where gopls is using 100% CPU time, forcing me to reload, after which it does its usual startup and is fine again. But, I'm not sure that itself is related.)

@stamblerre
Copy link
Contributor

@stoicAlchemist: Does the problem fix itself when you reload your editor? Can you try running gopls -rpc.trace -v check path/to/file.go?

@zikaeroh: What editor are you using?

@zikaeroh
Copy link
Contributor

I'm using VS Code.

@stamblerre
Copy link
Contributor

How do things compare on master of gopls (instead of @latest)? We haven't tagged a new version in a while.

Another suggestion might be to build gopls with the -race flag and report any crashes that occur.

I'm sorry that I can't yet give any concrete steps for solving these problems. Our ongoing work to rewrite the caching layer will likely resolve some of these issues, so I will update this thread as changes are merged into master.

@zikaeroh
Copy link
Contributor

zikaeroh commented Aug 13, 2019

I always run at master, actually; I keep the build dashboard up in a tab and check often to pull them. 🙂 My comment about getting this message this morning was before today's CLs, but I'll keep watching to see if I see it again.

@stoicAlchemist
Copy link

@stoicAlchemist: Does the problem fix itself when you reload your editor? Can you try running gopls -rpc.trace -v check path/to/file.go?

No, it does not fix the issue, the output of the command gives:

.
.
.
2019/08/13 11:20:26 Info:Build info
----------
version v0.1.3, built in $GOPATH mode

Go info
-------
go version go1.12.7 darwin/amd64

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/Cellar/go/1.12.7/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.12.7/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
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 -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/ds/9zp1b1q9013098gtpld3zv0m0000gn/T/go-build071080114=/tmp/go-build -gno-record-gcc-switches -fno-common"
2019/08/13 11:20:26 Info:22.728451ms for GOROOT= GO111MODULE=  go "list" "-e" "-json" "-compiled=true" "-test=true" "-export=false" "-deps=true" "-find=false" "--" , stderr: <<>>
2019/08/13 11:20:27 Info:936.646818ms for GOROOT=  go "list" "-e" "-json" "-compiled=true" "-test=true" "-export=false" "-deps=true" "-find=false" "--", stderr: <<>>
2019/08/13 11:20:27 Info:go/packages.Load
        packages = 1
2019/08/13 11:20:27 Info:go/packages.Load
        package = command-line-arguments
        files = [~/main.go]
~/main.go:4:12-19: undeclared name: newDeck
~/main.go:6:26-30: undeclared name: deal

Bear in mind that some personal data has been changed, nothing big or important.

@stamblerre
Copy link
Contributor

@stoicAlchemist: This sounds like a different issue from the one that @peterbourgon and @zikaeroh are describing. Do you mind opening a separate issue so that I can help you diagnose this?

@peterbourgon
Copy link
Author

How do things compare on master of gopls (instead of @latest)? We haven't tagged a new version in a while.

Another suggestion might be to build gopls with the -race flag and report any crashes that occur.

I've done this and will report back with any findings. Where would the crash output go, in the gopls log in VS Code?

@stoicAlchemist
Copy link

Sure thing, will raise a new one

@peterbourgon
Copy link
Author

peterbourgon commented Aug 16, 2019

I have been using the latest master version (97f12d7) of gopls for the past few days. (I tried compiling with -race but it was too slow to use.) Subjectively, things are unambiguously worse than the current stable release. The specific manifestation of the bugs is always different, but can generally be explained by a disconnect between what gopls thinks is the AST of the files on disk, and what is the actual state of the files on disk. If you think this is caused by race conditions in gopls then I believe you. These errors are noticeably more frequent, perhaps twice or three times so, compared to stable.

Most annoyingly, while the latest stable release could be reliably reset with a kill of the gopls process (and allowing VS Code to restart it), doing this to the development version rarely makes a difference. (Sometimes the false errors it reports in my project change, after a kill.) And restarting the entire VS Code + gopls stack often doesn't help, either.

Here is one such random failure mode. I was doing some git rebasing at the terminal and tabbed back into VS Code to discover the following error in one file:

cannot use (*auth.Node)(nil) (value of type *auth.Node) as Auth value in variable declaration: wrong type for method ExecMode [LSP]

This is of course not true.

Here is the output of gopls check on that file. Here is the debug log for the session I'm describing.

I am going to have to revert to the latest stable release to be able to do my job effectively.

Are you really not seeing any errors like this internally on the gopls team? They are so ubiquitous for me, and without doing anything that I feel is out of the ordinary, that I have trouble believing I'm hitting anything like weird edge cases. I am totally willing to run a custom build of gopls and sit in a screen share session with someone for an hour or two, and I'm absolutely confident we will hit multiple instances of this error. Let me know if that (or anything like that) would be productive for you.

@SteelPhase
Copy link

SteelPhase commented Aug 20, 2019

I keep running into this randomly as well, and I could see a race condition being the issue. I'm still in GOPATH mode, and I use the vendor directory pretty heavily. running go list -deps ./... over my project I have about 222 dependencies. I'm not entirely sure what the scale of that is versus other projects, but I have a feeling this may be related to the issue, and how often it's experienced. Maybe it's just the amount of packages that need to be loaded into gopls?

@stamblerre
Copy link
Contributor

gopls is more likely to get confused when doing things like git rebasing, and it doesn't yet watch changed files (though it will soon: https://go-review.googlesource.com/c/tools/+/190857), so any time your file changes outside of the editor, the state of the cache will be incorrect. To restart gopls, I'd suggest reloading the entire VSCode window (Developer: Reload Window), because I believe there are some issues with the restart command (microsoft/vscode-go#2633).

We do see errors as we develop, but we can often attribute them to whatever we're debugging at the moment. I have seen errors like the ones you describe randomly pop up, but they are infrequent enough (once a week or so), that I am surprised when you say that you see them very frequently. It's very possible that @SteelPhase's guess is correct - it's probably more likely for things to get out of sync if you have a lot of dependencies.

@peterbourgon: Thank you for the screen-share offer. At this point, I think we have quite a few things that we're working on to hopefully fix a number of these issues, but if you're still seeing these errors after we submit all of our changes, I will take you up on that.

@peterbourgon
Copy link
Author

peterbourgon commented Aug 20, 2019

gopls … doesn't yet watch changed files … so any time your file changes outside of the editor, the state of the cache will be incorrect.

Oh.

This is a key insight, and probably explains at least some of the frequency of my problems. I rarely do file manipulation (git branching, rebasing, file creation/deletion, structural re/organization) in the editor itself, rather through a separate terminal.

@cespare
Copy link
Contributor

cespare commented Aug 20, 2019

That is indeed a surprising bit of info. Is this documented anywhere? If gopls doesn't handle files changing, then it's not suitable for my use cases. This explains many of the issues I've been seeing. I've been following gopls development and I hadn't understood this crucial point.

@myitcv
Copy link
Member

myitcv commented Aug 20, 2019

FWIW @cespare whilst we await the proper implementation of file watching, govim has its own implementation that uses the current protocol for files being opened and changed in the editor. It's possible that you're running into a bug somewhere along those lines. Will comment over in govim world

@SteelPhase
Copy link

SteelPhase commented Aug 21, 2019

So i can finally reproduce this every time for myself. I've attempted to isolate it to a small test case, but it appears that it requires a large dependency set or something to keep gopls busy long enough.

  1. Open go file
  2. make change, and save
  3. go to source control tab
  4. view change comparison for working tree.
  5. errors appear associated with working tree copy in comparison view.
  6. go back to the open file, and attempt to change the file
  7. weird errors appear.

Errors that are presented to me

{
	"resource": "/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go",
	"owner": "_generated_diagnostic_collection_name_#0",
	"severity": 8,
	"message": "could not import go.uber.org/zap (no parsed files for package go.uber.org/zap)",
	"source": "LSP",
	"startLineNumber": 9,
	"startColumn": 2,
	"endLineNumber": 9,
	"endColumn": 19
}
{
	"resource": "/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go",
	"owner": "_generated_diagnostic_collection_name_#0",
	"severity": 8,
	"message": "cannot use builder (variable of type *bsoncodec.RegistryBuilder) as *bsoncodec.RegistryBuilder value in argument to codec.RegisterCodecs",
	"source": "LSP",
	"startLineNumber": 33,
	"startColumn": 23,
	"endLineNumber": 33,
	"endColumn": 30
}
{
	"resource": "/Users/steelphase/Code/Go/src/go.company.com/org/service1/git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go?{\"path\":\"/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go\",\"ref\":\"~\"}",
	"owner": "_generated_diagnostic_collection_name_#0",
	"severity": 8,
	"message": "could not import go.uber.org/zap (no parsed files for package go.uber.org/zap)",
	"source": "LSP",
	"startLineNumber": 9,
	"startColumn": 2,
	"endLineNumber": 9,
	"endColumn": 19
}
{
	"resource": "/Users/steelphase/Code/Go/src/go.company.com/org/service1/git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go?{\"path\":\"/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go\",\"ref\":\"~\"}",
	"owner": "_generated_diagnostic_collection_name_#0",
	"severity": 8,
	"message": "cannot use builder (variable of type *bsoncodec.RegistryBuilder) as *bsoncodec.RegistryBuilder value in argument to codec.RegisterCodecs",
	"source": "LSP",
	"startLineNumber": 33,
	"startColumn": 23,
	"endLineNumber": 33,
	"endColumn": 30
}

This is the debug log from this occuring

debug log
2019/08/20 20:06:06 Debug serving on port: 6060
[Trace - 8:06:06 PM] Sending request 'initialize - (0)'.
Params: {"processId":11840,"rootPath":"/Users/steelphase/Code/Go/src/go.company.com/org/service1","rootUri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1","capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"documentChanges":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]}},"executeCommand":{"dynamicRegistration":true},"configuration":true,"workspaceFolders":true},"textDocument":{"publishDiagnostics":{"relatedInformation":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},"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"]}},"definition":{"dynamicRegistration":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},"codeAction":{"dynamicRegistration":true,"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},"documentLink":{"dynamicRegistration":true},"typeDefinition":{"dynamicRegistration":true},"implementation":{"dynamicRegistration":true},"colorProvider":{"dynamicRegistration":true},"foldingRange":{"dynamicRegistration":true,"rangeLimit":5000,"lineFoldingOnly":true}}},"initializationOptions":{"funcSnippetEnabled":false,"gocodeCompletionEnabled":true},"trace":"off","workspaceFolders":[{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1","name":"service1"}]}

[Trace - 8:06:06 PM] Received response 'initialize - (0)' in 95ms.
Params: {"capabilities":{"textDocumentSync":{"openClose":true,"change":2,"save":{}},"hoverProvider":true,"completionProvider":{"triggerCharacters":["."]},"signatureHelpProvider":{"triggerCharacters":["(",","]},"definitionProvider":true,"referencesProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"codeActionProvider":true,"documentFormattingProvider":true,"renameProvider":true,"documentLinkProvider":{},"typeDefinitionProvider":true,"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":"workspace/didChangeWorkspaceFolders"}}},"custom":null}

[Trace - 8:06:06 PM] Sending notification 'initialized'.
Params: {}

[Trace - 8:06:06 PM] Received request 'client/registerCapability - (1)'.
Params: {"registrations":[{"id":"workspace/didChangeConfiguration","method":"workspace/didChangeConfiguration"},{"id":"workspace/didChangeWorkspaceFolders","method":"workspace/didChangeWorkspaceFolders"}]}

[Trace - 8:06:06 PM] Sending response 'client/registerCapability - (1)' in 40ms.
Params: {}

[Trace - 8:06:06 PM] Received request 'workspace/configuration - (2)'.
Params: {"items":[{"scopeUri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1","section":"gopls"}]}

[Trace - 8:06:06 PM] Sending response 'workspace/configuration - (2)' in 10ms.
Params: [{"usePlaceholders":true,"wantCompletionDocumentation":true,"hoverKind":"FullDocumentation","wantSuggestedFixes":true}]

[Trace - 8:06:06 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"Build info\n----------\ngolang.org/x/tools/gopls v0.1.2\n golang.org/x/tools/gopls@v0.1.3 h1:CB5ECiPysqZrwxcyRjN+exyZpY0gODTZvNiqQi3lpeo=\n golang.org/x/sync@v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=\n golang.org/x/tools@v0.0.0-20190710153321-831012c29e42 h1:4IOeC7p+OItq3+O5BWkcmVu2uBe3jekXau5S4QZX9DU=\n\nGo info\n-------\ngo version go1.12.9 darwin/amd64\n\nGOARCH="amd64"\nGOBIN=""\nGOCACHE="/Users/steelphase/Library/Caches/go-build"\nGOEXE=""\nGOFLAGS=""\nGOHOSTARCH="amd64"\nGOHOSTOS="darwin"\nGOOS="darwin"\nGOPATH="/Users/steelphase/Code/Go"\nGOPROXY=""\nGORACE=""\nGOROOT="/usr/local/Cellar/go/1.12.9/libexec"\nGOTMPDIR=""\nGOTOOLDIR="/usr/local/Cellar/go/1.12.9/libexec/pkg/tool/darwin_amd64"\nGCCGO="gccgo"\nCC="clang"\nCXX="clang++"\nCGO_ENABLED="1"\nGOMOD=""\nCGO_CFLAGS="-g -O2"\nCGO_CPPFLAGS=""\nCGO_CXXFLAGS="-g -O2"\nCGO_FFLAGS="-g -O2"\nCGO_LDFLAGS="-g -O2"\nPKG_CONFIG="pkg-config"\nGOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/0b/zk7t542s1sj_31mwpwyk3cy81gy8z8/T/go-build573946648=/tmp/go-build -gno-record-gcc-switches -fno-common"\n"}

[Trace - 8:06:06 PM] Sending notification 'textDocument/didOpen'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","languageId":"go","version":3,"text":"package thing\n\nimport (\n\t"errors"\n\n\t"go.mongodb.org/mongo-driver/bson"\n\t"go.mongodb.org/mongo-driver/mongo"\n\t"go.mongodb.org/mongo-driver/mongo/options"\n\t"go.uber.org/zap"\n\n\t"go.company.com/org/service1/pkg/thing/codec"\n)\n\n// Thing ...\ntype Thing struct {\n\tcollection *mongo.Collection\n\tlog *zap.Logger\n}\n\n// NewThing ...\nfunc NewThing(log *zap.Logger, database *mongo.Database, collectionName string) (*Thing, error) {\n\tif log == nil {\n\t\treturn nil, errors.New("ugh")\n\t}\n\n\tif database == nil {\n\t\treturn nil, errors.New("ugh 2")\n\t}\n\n\topts := options.Collection()\n\tbuilder := bson.NewRegistryBuilder()\n\n\tcodec.RegisterCodecs(builder)\n\n\t\n\n\topts.SetRegistry(builder.Build())\n\tcollection := database.Collection(collectionName, opts)\n\n\treturn &Thing{\n\t\tcollection: collection,\n\t\tlog: log,\n\t}, nil\n}\n"}}

[Trace - 8:06:06 PM] Sending request 'textDocument/documentSymbol - (1)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Info - 8:06:06 PM] Build info

golang.org/x/tools/gopls v0.1.2
golang.org/x/tools/gopls@v0.1.3 h1:CB5ECiPysqZrwxcyRjN+exyZpY0gODTZvNiqQi3lpeo=
golang.org/x/sync@v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=
golang.org/x/tools@v0.0.0-20190710153321-831012c29e42 h1:4IOeC7p+OItq3+O5BWkcmVu2uBe3jekXau5S4QZX9DU=

Go info

go version go1.12.9 darwin/amd64

GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/steelphase/Library/Caches/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/steelphase/Code/Go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/Cellar/go/1.12.9/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.12.9/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
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 -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/0b/zk7t542s1sj_31mwpwyk3cy81gy8z8/T/go-build573946648=/tmp/go-build -gno-record-gcc-switches -fno-common"

[Trace - 8:06:08 PM] Received response 'textDocument/documentSymbol - (1)' in 2454ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:06:08 PM] Sending request 'textDocument/documentLink - (2)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:08 PM] Received response 'textDocument/documentLink - (2)' in 2453ms.
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":9}},"target":"https://godoc.org/errors"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":35}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/bson"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":36}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":44}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo/options"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":18}},"target":"https://godoc.org/go.uber.org/zap"},{"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":65}},"target":"https://godoc.org/go.company.com/org/service1/pkg/thing/codec"}]

[Trace - 8:06:08 PM] Sending notification '$/cancelRequest'.
Params: {"id":2}

[Trace - 8:06:09 PM] Sending request 'textDocument/documentLink - (3)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:09 PM] Received response 'textDocument/documentLink - (3)' in 2723ms.
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":9}},"target":"https://godoc.org/errors"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":35}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/bson"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":36}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":44}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo/options"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":18}},"target":"https://godoc.org/go.uber.org/zap"},{"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":65}},"target":"https://godoc.org/go.company.com/org/service1/pkg/thing/codec"}]

[Trace - 8:06:09 PM] Sending notification 'textDocument/didChange'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","version":4},"contentChanges":[{"range":{"start":{"line":34,"character":1},"end":{"line":34,"character":1}},"rangeLength":0,"text":"+"}]}

[Trace - 8:06:09 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","diagnostics":[{"range":{"start":{"line":36,"character":1},"end":{"line":36,"character":17}},"severity":1,"source":"LSP","message":"invalid operation: operator + not defined for opts.SetRegistry(builder.Build()) (value of type *options.CollectionOptions)"}]}

[Trace - 8:06:09 PM] Sending request 'textDocument/codeAction - (4)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":34,"character":2},"end":{"line":34,"character":2}},"context":{"diagnostics":[]}}

[Trace - 8:06:09 PM] Received response 'textDocument/codeAction - (4)' in 2359ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[{"range":{"start":{"line":34,"character":0},"end":{"line":35,"character":0}},"newText":""},{"range":{"start":{"line":35,"character":0},"end":{"line":36,"character":0}},"newText":""},{"range":{"start":{"line":36,"character":0},"end":{"line":37,"character":0}},"newText":""},{"range":{"start":{"line":37,"character":0},"end":{"line":37,"character":0}},"newText":"\t+opts.SetRegistry(builder.Build())\n"}]}}}]

[Trace - 8:06:09 PM] Sending request 'textDocument/documentSymbol - (5)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:09 PM] Received response 'textDocument/documentSymbol - (5)' in 2321ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:06:09 PM] Sending request 'textDocument/documentSymbol - (6)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:09 PM] Received response 'textDocument/documentSymbol - (6)' in 2280ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:06:09 PM] Sending notification 'textDocument/didChange'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","version":5},"contentChanges":[{"range":{"start":{"line":34,"character":1},"end":{"line":34,"character":2}},"rangeLength":1,"text":""}]}

[Trace - 8:06:09 PM] Sending notification '$/cancelRequest'.
Params: {"id":4}

[Trace - 8:06:09 PM] Sending notification 'textDocument/didChange'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","version":6},"contentChanges":[{"range":{"start":{"line":34,"character":1},"end":{"line":34,"character":1}},"rangeLength":0,"text":"_"}]}

[Trace - 8:06:09 PM] Sending request 'textDocument/completion - (7)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"position":{"line":34,"character":2},"context":{"triggerKind":1}}

[Trace - 8:06:09 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","diagnostics":[{"range":{"start":{"line":34,"character":1},"end":{"line":34,"character":2}},"severity":1,"source":"LSP","message":"cannot use _ as value or type"}]}

[Trace - 8:06:09 PM] Received response 'textDocument/completion - (7)' in 2009ms.
Params: {"isIncomplete":false,"items":[]}

[Trace - 8:06:09 PM] Sending request 'textDocument/codeAction - (8)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":34,"character":2},"end":{"line":34,"character":2}},"context":{"diagnostics":[]}}

[Trace - 8:06:09 PM] Received response 'textDocument/codeAction - (8)' in 1803ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[]}}}]

[Trace - 8:06:09 PM] Sending notification 'textDocument/didChange'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","version":7},"contentChanges":[{"range":{"start":{"line":34,"character":2},"end":{"line":34,"character":2}},"rangeLength":0,"text":" "}]}

[Trace - 8:06:09 PM] Sending notification '$/cancelRequest'.
Params: {"id":8}

[Trace - 8:06:09 PM] Sending request 'textDocument/documentSymbol - (9)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:09 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","diagnostics":[]}

[Trace - 8:06:09 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","diagnostics":[]}

[Trace - 8:06:09 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","diagnostics":[{"range":{"start":{"line":34,"character":1},"end":{"line":34,"character":2}},"severity":1,"source":"LSP","message":"cannot use _ as value or type"}]}

[Trace - 8:06:09 PM] Received response 'textDocument/documentSymbol - (9)' in 1802ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:06:09 PM] Sending request 'textDocument/documentLink - (10)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:09 PM] Received response 'textDocument/documentLink - (10)' in 1725ms.
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":9}},"target":"https://godoc.org/errors"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":35}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/bson"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":36}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":44}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo/options"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":18}},"target":"https://godoc.org/go.uber.org/zap"},{"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":65}},"target":"https://godoc.org/go.company.com/org/service1/pkg/thing/codec"}]

[Trace - 8:06:09 PM] Sending notification 'textDocument/didChange'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","version":8},"contentChanges":[{"range":{"start":{"line":34,"character":3},"end":{"line":34,"character":3}},"rangeLength":0,"text":"="}]}

[Trace - 8:06:09 PM] Sending request 'textDocument/codeAction - (11)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":34,"character":4},"end":{"line":34,"character":4}},"context":{"diagnostics":[]}}

[Trace - 8:06:09 PM] Received response 'textDocument/codeAction - (11)' in 1475ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[{"range":{"start":{"line":36,"character":0},"end":{"line":37,"character":0}},"newText":""},{"range":{"start":{"line":37,"character":0},"end":{"line":37,"character":0}},"newText":"\t\topts.SetRegistry(builder.Build())\n"}]}}}]

[Trace - 8:06:09 PM] Sending request 'textDocument/documentSymbol - (12)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:09 PM] Received response 'textDocument/documentSymbol - (12)' in 1468ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:06:09 PM] Sending notification '$/cancelRequest'.
Params: {"id":5}

[Trace - 8:06:09 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","diagnostics":[]}

[Trace - 8:06:09 PM] Sending request 'textDocument/documentSymbol - (13)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:09 PM] Received response 'textDocument/documentSymbol - (13)' in 1373ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:06:09 PM] Sending notification 'textDocument/didChange'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","version":9},"contentChanges":[{"range":{"start":{"line":34,"character":4},"end":{"line":34,"character":4}},"rangeLength":0,"text":" "}]}

[Trace - 8:06:09 PM] Sending notification '$/cancelRequest'.
Params: {"id":11}

[Trace - 8:06:09 PM] Sending notification 'textDocument/didChange'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","version":10},"contentChanges":[{"range":{"start":{"line":34,"character":5},"end":{"line":34,"character":5}},"rangeLength":0,"text":"o"}]}

[Trace - 8:06:09 PM] Sending notification 'textDocument/didChange'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","version":11},"contentChanges":[{"range":{"start":{"line":34,"character":6},"end":{"line":34,"character":6}},"rangeLength":0,"text":"p"}]}

[Trace - 8:06:09 PM] Sending request 'textDocument/documentLink - (14)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:09 PM] Received notification 'window/logMessage'.
Params: {"type":1,"message":"unable to check package for file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go: context canceled"}

[Trace - 8:06:09 PM] Received notification 'window/logMessage'.
Params: {"type":1,"message":"unable to check package for file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go: context canceled"}

[Trace - 8:06:09 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","diagnostics":[{"range":{"start":{"line":34,"character":5},"end":{"line":34,"character":6}},"severity":1,"source":"LSP","message":"undeclared name: o"}]}

[Trace - 8:06:09 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","diagnostics":[]}

[Trace - 8:06:09 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","diagnostics":[{"range":{"start":{"line":34,"character":5},"end":{"line":34,"character":7}},"severity":1,"source":"LSP","message":"undeclared name: op"}]}

[Trace - 8:06:09 PM] Received response 'textDocument/documentLink - (14)' in 644ms.
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":9}},"target":"https://godoc.org/errors"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":35}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/bson"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":36}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":44}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo/options"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":18}},"target":"https://godoc.org/go.uber.org/zap"},{"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":65}},"target":"https://godoc.org/go.company.com/org/service1/pkg/thing/codec"}]

[Trace - 8:06:09 PM] Sending notification 'textDocument/didChange'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","version":12},"contentChanges":[{"range":{"start":{"line":34,"character":7},"end":{"line":34,"character":7}},"rangeLength":0,"text":"t"}]}

[Trace - 8:06:09 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","diagnostics":[{"range":{"start":{"line":34,"character":5},"end":{"line":34,"character":8}},"severity":1,"source":"LSP","message":"undeclared name: opt"}]}

[Trace - 8:06:09 PM] Sending request 'textDocument/codeAction - (15)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":34,"character":8},"end":{"line":34,"character":8}},"context":{"diagnostics":[]}}

[Trace - 8:06:09 PM] Received response 'textDocument/codeAction - (15)' in 85ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[]}}}]

[Trace - 8:06:09 PM] Sending request 'textDocument/documentSymbol - (16)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:09 PM] Received response 'textDocument/documentSymbol - (16)' in 85ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:06:09 PM] Sending notification 'textDocument/didChange'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","version":13},"contentChanges":[{"range":{"start":{"line":34,"character":8},"end":{"line":34,"character":8}},"rangeLength":0,"text":"s"}]}

[Trace - 8:06:09 PM] Sending request 'textDocument/documentSymbol - (17)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:09 PM] Received response 'textDocument/documentSymbol - (17)' in 6ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:06:09 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","diagnostics":[]}

[Trace - 8:06:09 PM] Sending request 'textDocument/completion - (18)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"position":{"line":34,"character":9},"context":{"triggerKind":1}}

[Trace - 8:06:09 PM] Received response 'textDocument/completion - (18)' in 2ms.
Params: {"isIncomplete":false,"items":[{"label":"opts","kind":6,"detail":"*options.CollectionOptions","sortText":"00004","filterText":"opts","insertTextFormat":2,"textEdit":{"range":{"start":{"line":34,"character":5},"end":{"line":34,"character":9}},"newText":"opts"}}]}

[Trace - 8:06:09 PM] Sending request 'textDocument/documentLink - (19)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:09 PM] Received response 'textDocument/documentLink - (19)' in 0ms.
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":9}},"target":"https://godoc.org/errors"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":35}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/bson"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":36}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":44}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo/options"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":18}},"target":"https://godoc.org/go.uber.org/zap"},{"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":65}},"target":"https://godoc.org/go.company.com/org/service1/pkg/thing/codec"}]

[Trace - 8:06:09 PM] Sending request 'textDocument/documentSymbol - (20)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:09 PM] Received response 'textDocument/documentSymbol - (20)' in 0ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:06:09 PM] Sending request 'textDocument/codeAction - (21)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":34,"character":9},"end":{"line":34,"character":9}},"context":{"diagnostics":[]}}

[Trace - 8:06:09 PM] Received response 'textDocument/codeAction - (21)' in 1ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[]}}}]

[Trace - 8:06:09 PM] Sending request 'textDocument/documentSymbol - (22)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:09 PM] Received response 'textDocument/documentSymbol - (22)' in 0ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:06:09 PM] Sending request 'textDocument/documentSymbol - (23)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:09 PM] Received response 'textDocument/documentSymbol - (23)' in 0ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:06:12 PM] Sending request 'textDocument/codeAction - (24)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":0,"character":0},"end":{"line":44,"character":0}},"context":{"diagnostics":[]}}

[Trace - 8:06:12 PM] Received response 'textDocument/codeAction - (24)' in 1ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[]}}}]

[Trace - 8:06:12 PM] Sending request 'textDocument/formatting - (25)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"options":{"tabSize":4,"insertSpaces":false}}

[Trace - 8:06:12 PM] Received response 'textDocument/formatting - (25)' in 1ms.
Params: []

[Trace - 8:06:12 PM] Sending notification 'textDocument/didSave'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","version":13}}

[Trace - 8:06:12 PM] Sending request 'textDocument/documentSymbol - (26)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:12 PM] Received response 'textDocument/documentSymbol - (26)' in 0ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:06:12 PM] Sending request 'textDocument/documentSymbol - (27)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:12 PM] Received response 'textDocument/documentSymbol - (27)' in 0ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:06:14 PM] Sending notification 'textDocument/didOpen'.
Params: {"textDocument":{"uri":"git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go?%7B%22path%22%3A%22%2FUsers%2Fsteelphase%2FCode%2FGo%2Fsrc%2Fgo.company.com%2Forg%2Fservice1%2Fcmd%2Fservice1-serviceA%2Fthing%2Ftest-file.go%22%2C%22ref%22%3A%22~%22%7D","languageId":"go","version":1,"text":"package thing\n\nimport (\n\t"errors"\n\n\t"go.mongodb.org/mongo-driver/bson"\n\t"go.mongodb.org/mongo-driver/mongo"\n\t"go.mongodb.org/mongo-driver/mongo/options"\n\t"go.uber.org/zap"\n\n\t"go.company.com/org/service1/pkg/thing/codec"\n)\n\n// Thing ...\ntype Thing struct {\n\tcollection *mongo.Collection\n\tlog *zap.Logger\n}\n\n// NewThing ...\nfunc NewThing(log *zap.Logger, database *mongo.Database, collectionName string) (*Thing, error) {\n\tif log == nil {\n\t\treturn nil, errors.New("ugh")\n\t}\n\n\tif database == nil {\n\t\treturn nil, errors.New("ugh 2")\n\t}\n\n\topts := options.Collection()\n\tbuilder := bson.NewRegistryBuilder()\n\n\tcodec.RegisterCodecs(builder)\n\n\topts.SetRegistry(builder.Build())\n\tcollection := database.Collection(collectionName, opts)\n\n\treturn &Thing{\n\t\tcollection: collection,\n\t\tlog: log,\n\t}, nil\n}\n"}}

[Trace - 8:06:14 PM] Received notification 'window/logMessage'.
Params: {"type":1,"message":"failed to read file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go%3F%7B%22path%22:%22/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go%22,%22ref%22:%22~%22%7D: open /Users/steelphase/Code/Go/src/go.company.com/org/service1/git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go?{"path":"/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","ref":"~"}: no such file or directory"}

[Trace - 8:06:14 PM] Sending request 'textDocument/documentLink - (28)'.
Params: {"textDocument":{"uri":"git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go?%7B%22path%22%3A%22%2FUsers%2Fsteelphase%2FCode%2FGo%2Fsrc%2Fgo.company.com%2Forg%2Fservice1%2Fcmd%2Fservice1-serviceA%2Fthing%2Ftest-file.go%22%2C%22ref%22%3A%22~%22%7D"}}

[Error - 8:06:14 PM] failed to read file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go%3F%7B%22path%22:%22/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go%22,%22ref%22:%22~%22%7D: open /Users/steelphase/Code/Go/src/go.company.com/org/service1/git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go?{"path":"/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","ref":""}: no such file or directory
[Trace - 8:06:16 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go%3F%7B%22path%22:%22/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go%22,%22ref%22:%22
%22%7D","diagnostics":[{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":18}},"severity":1,"source":"LSP","message":"could not import go.uber.org/zap (no parsed files for package go.uber.org/zap)"},{"range":{"start":{"line":32,"character":22},"end":{"line":32,"character":29}},"severity":1,"source":"LSP","message":"cannot use builder (variable of type *bsoncodec.RegistryBuilder) as *bsoncodec.RegistryBuilder value in argument to codec.RegisterCodecs"}]}

[Trace - 8:06:16 PM] Received response 'textDocument/documentLink - (28)' in 1880ms.
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":9}},"target":"https://godoc.org/errors"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":35}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/bson"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":36}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":44}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo/options"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":18}},"target":"https://godoc.org/go.uber.org/zap"},{"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":65}},"target":"https://godoc.org/go.company.com/org/service1/pkg/thing/codec"}]

[Trace - 8:06:16 PM] Sending request 'textDocument/documentLink - (29)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:16 PM] Sending request 'textDocument/codeAction - (30)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}}

[Trace - 8:06:16 PM] Received response 'textDocument/documentLink - (29)' in 1850ms.
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":9}},"target":"https://godoc.org/errors"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":35}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/bson"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":36}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":44}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo/options"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":18}},"target":"https://godoc.org/go.uber.org/zap"},{"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":65}},"target":"https://godoc.org/go.company.com/org/service1/pkg/thing/codec"}]

[Trace - 8:06:16 PM] Received response 'textDocument/codeAction - (30)' in 1850ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[]}}}]

[Trace - 8:06:16 PM] Sending request 'textDocument/documentSymbol - (31)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:16 PM] Sending notification '$/cancelRequest'.
Params: {"id":30}

[Trace - 8:06:16 PM] Received response 'textDocument/documentSymbol - (31)' in 1769ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:06:21 PM] Sending request 'textDocument/documentLink - (32)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:21 PM] Received response 'textDocument/documentLink - (32)' in 3ms.
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":9}},"target":"https://godoc.org/errors"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":35}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/bson"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":36}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":44}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo/options"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":18}},"target":"https://godoc.org/go.uber.org/zap"},{"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":65}},"target":"https://godoc.org/go.company.com/org/service1/pkg/thing/codec"}]

[Trace - 8:06:21 PM] Sending request 'textDocument/codeAction - (33)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}}

[Trace - 8:06:21 PM] Received response 'textDocument/codeAction - (33)' in 4ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[]}}}]

[Trace - 8:06:21 PM] Sending request 'textDocument/documentSymbol - (34)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:21 PM] Received response 'textDocument/documentSymbol - (34)' in 4ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:06:21 PM] Sending request 'textDocument/codeAction - (35)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":34,"character":9},"end":{"line":34,"character":9}},"context":{"diagnostics":[]}}

[Trace - 8:06:21 PM] Received response 'textDocument/codeAction - (35)' in 3ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[]}}}]

[Trace - 8:06:21 PM] Sending request 'textDocument/documentSymbol - (36)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:21 PM] Received response 'textDocument/documentSymbol - (36)' in 0ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:06:21 PM] Sending request 'textDocument/documentSymbol - (37)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:06:21 PM] Received response 'textDocument/documentSymbol - (37)' in 0ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:12:51 PM] Sending request 'textDocument/hover - (38)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"position":{"line":25,"character":15}}

[Error - 8:12:51 PM] send textDocument/hover#38 no identifier found

[Error - 8:12:51 PM] Request textDocument/hover failed.
Message: no identifier found
Code: 0
[Trace - 8:12:51 PM] Sending request 'textDocument/hover - (39)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"position":{"line":25,"character":15}}

[Error - 8:12:51 PM] send textDocument/hover#39 no identifier found

[Error - 8:12:51 PM] Request textDocument/hover failed.
Message: no identifier found
Code: 0
[Trace - 8:13:13 PM] Sending notification 'textDocument/didClose'.
Params: {"textDocument":{"uri":"git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go?%7B%22path%22%3A%22%2FUsers%2Fsteelphase%2FCode%2FGo%2Fsrc%2Fgo.company.com%2Forg%2Fservice1%2Fcmd%2Fservice1-serviceA%2Fthing%2Ftest-file.go%22%2C%22ref%22%3A%22~%22%7D"}}

[Trace - 8:13:13 PM] Received notification 'window/logMessage'.
Params: {"type":1,"message":"unable to check package for file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go%3F%7B%22path%22:%22/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go%22,%22ref%22:%22~%22%7D: go/packages.Load: no packages found for /Users/steelphase/Code/Go/src/go.company.com/org/service1/git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go?{"path":"/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","ref":"~"}"}

[Trace - 8:13:13 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go%3F%7B%22path%22:%22/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go%22,%22ref%22:%22~%22%7D","diagnostics":[]}

[Error - 8:13:13 PM] unable to check package for file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go%3F%7B%22path%22:%22/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go%22,%22ref%22:%22~%22%7D: go/packages.Load: no packages found for /Users/steelphase/Code/Go/src/go.company.com/org/service1/git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go?{"path":"/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","ref":"~"}
[Trace - 8:13:18 PM] Sending request 'textDocument/documentHighlight - (40)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"position":{"line":16,"character":23}}

[Trace - 8:13:18 PM] Received notification 'window/logMessage'.
Params: {"type":1,"message":"no highlight for /Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go:17:24: /Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go:17:24 is not an identifier"}

[Trace - 8:13:18 PM] Received response 'textDocument/documentHighlight - (40)' in 0ms.
Params: []

[Error - 8:13:18 PM] no highlight for /Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go:17:24: /Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go:17:24 is not an identifier
[Trace - 8:13:18 PM] Sending request 'textDocument/codeAction - (41)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":16,"character":23},"end":{"line":16,"character":23}},"context":{"diagnostics":[]}}

[Trace - 8:13:18 PM] Received response 'textDocument/codeAction - (41)' in 2ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[]}}}]

[Trace - 8:13:20 PM] Sending request 'textDocument/codeAction - (42)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":0,"character":0},"end":{"line":44,"character":0}},"context":{"diagnostics":[]}}

[Trace - 8:13:20 PM] Received response 'textDocument/codeAction - (42)' in 1ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[]}}}]

[Trace - 8:13:20 PM] Sending request 'textDocument/formatting - (43)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"options":{"tabSize":4,"insertSpaces":false}}

[Trace - 8:13:20 PM] Received response 'textDocument/formatting - (43)' in 1ms.
Params: []

[Trace - 8:13:20 PM] Sending notification 'textDocument/didSave'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","version":13}}

[Trace - 8:13:20 PM] Sending request 'textDocument/documentSymbol - (44)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:13:20 PM] Received response 'textDocument/documentSymbol - (44)' in 0ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:13:20 PM] Sending request 'textDocument/documentSymbol - (45)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:13:20 PM] Received response 'textDocument/documentSymbol - (45)' in 0ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:13:21 PM] Sending request 'textDocument/documentHighlight - (46)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"position":{"line":34,"character":9}}

[Trace - 8:13:21 PM] Received notification 'window/logMessage'.
Params: {"type":1,"message":"no highlight for /Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go:35:10: /Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go:35:10 is not an identifier"}

[Trace - 8:13:21 PM] Received response 'textDocument/documentHighlight - (46)' in 0ms.
Params: []

[Error - 8:13:21 PM] no highlight for /Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go:35:10: /Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go:35:10 is not an identifier
[Trace - 8:13:21 PM] Sending request 'textDocument/codeAction - (47)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":34,"character":9},"end":{"line":34,"character":9}},"context":{"diagnostics":[]}}

[Trace - 8:13:21 PM] Received response 'textDocument/codeAction - (47)' in 2ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[]}}}]

[Trace - 8:13:22 PM] Sending request 'textDocument/hover - (48)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"position":{"line":34,"character":9}}

[Trace - 8:13:22 PM] Received response 'textDocument/hover - (48)' in 0ms.
Params: {"contents":{"kind":"markdown","value":"go\nvar opts *options.CollectionOptions\n"},"range":{"start":{"line":34,"character":5},"end":{"line":34,"character":9}}}

[Trace - 8:13:23 PM] Sending notification 'textDocument/didOpen'.
Params: {"textDocument":{"uri":"git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go?%7B%22path%22%3A%22%2FUsers%2Fsteelphase%2FCode%2FGo%2Fsrc%2Fgo.company.com%2Forg%2Fservice1%2Fcmd%2Fservice1-serviceA%2Fthing%2Ftest-file.go%22%2C%22ref%22%3A%22~%22%7D","languageId":"go","version":1,"text":"package thing\n\nimport (\n\t"errors"\n\n\t"go.mongodb.org/mongo-driver/bson"\n\t"go.mongodb.org/mongo-driver/mongo"\n\t"go.mongodb.org/mongo-driver/mongo/options"\n\t"go.uber.org/zap"\n\n\t"go.company.com/org/service1/pkg/thing/codec"\n)\n\n// Thing ...\ntype Thing struct {\n\tcollection *mongo.Collection\n\tlog *zap.Logger\n}\n\n// NewThing ...\nfunc NewThing(log *zap.Logger, database *mongo.Database, collectionName string) (*Thing, error) {\n\tif log == nil {\n\t\treturn nil, errors.New("ugh")\n\t}\n\n\tif database == nil {\n\t\treturn nil, errors.New("ugh 2")\n\t}\n\n\topts := options.Collection()\n\tbuilder := bson.NewRegistryBuilder()\n\n\tcodec.RegisterCodecs(builder)\n\n\topts.SetRegistry(builder.Build())\n\tcollection := database.Collection(collectionName, opts)\n\n\treturn &Thing{\n\t\tcollection: collection,\n\t\tlog: log,\n\t}, nil\n}\n"}}

[Trace - 8:13:23 PM] Received notification 'window/logMessage'.
Params: {"type":1,"message":"failed to read file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go%3F%7B%22path%22:%22/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go%22,%22ref%22:%22~%22%7D: open /Users/steelphase/Code/Go/src/go.company.com/org/service1/git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go?{"path":"/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","ref":"~"}: no such file or directory"}

[Trace - 8:13:23 PM] Sending request 'textDocument/documentLink - (49)'.
Params: {"textDocument":{"uri":"git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go?%7B%22path%22%3A%22%2FUsers%2Fsteelphase%2FCode%2FGo%2Fsrc%2Fgo.company.com%2Forg%2Fservice1%2Fcmd%2Fservice1-serviceA%2Fthing%2Ftest-file.go%22%2C%22ref%22%3A%22~%22%7D"}}

[Error - 8:13:23 PM] failed to read file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go%3F%7B%22path%22:%22/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go%22,%22ref%22:%22~%22%7D: open /Users/steelphase/Code/Go/src/go.company.com/org/service1/git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go?{"path":"/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","ref":""}: no such file or directory
[Trace - 8:13:25 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/git:/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go%3F%7B%22path%22:%22/Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go%22,%22ref%22:%22
%22%7D","diagnostics":[{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":18}},"severity":1,"source":"LSP","message":"could not import go.uber.org/zap (no parsed files for package go.uber.org/zap)"},{"range":{"start":{"line":32,"character":22},"end":{"line":32,"character":29}},"severity":1,"source":"LSP","message":"cannot use builder (variable of type *bsoncodec.RegistryBuilder) as *bsoncodec.RegistryBuilder value in argument to codec.RegisterCodecs"}]}

[Trace - 8:13:25 PM] Sending request 'textDocument/documentLink - (50)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:13:25 PM] Received response 'textDocument/documentLink - (49)' in 1296ms.
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":9}},"target":"https://godoc.org/errors"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":35}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/bson"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":36}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":44}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo/options"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":18}},"target":"https://godoc.org/go.uber.org/zap"},{"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":65}},"target":"https://godoc.org/go.company.com/org/service1/pkg/thing/codec"}]

[Trace - 8:13:25 PM] Received response 'textDocument/documentLink - (50)' in 1283ms.
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":9}},"target":"https://godoc.org/errors"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":35}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/bson"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":36}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":44}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo/options"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":18}},"target":"https://godoc.org/go.uber.org/zap"},{"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":65}},"target":"https://godoc.org/go.company.com/org/service1/pkg/thing/codec"}]

[Trace - 8:13:25 PM] Sending request 'textDocument/codeAction - (51)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}}

[Trace - 8:13:25 PM] Received response 'textDocument/codeAction - (51)' in 1283ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[]}}}]

[Trace - 8:13:25 PM] Sending notification '$/cancelRequest'.
Params: {"id":51}

[Trace - 8:13:25 PM] Sending request 'textDocument/documentHighlight - (52)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"position":{"line":32,"character":18}}

[Trace - 8:13:25 PM] Received response 'textDocument/documentHighlight - (52)' in 287ms.
Params: []

[Trace - 8:13:25 PM] Sending request 'textDocument/codeAction - (53)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":32,"character":18},"end":{"line":32,"character":18}},"context":{"diagnostics":[]}}

[Trace - 8:13:25 PM] Received response 'textDocument/codeAction - (53)' in 55ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[]}}}]

[Trace - 8:13:26 PM] Sending request 'textDocument/documentLink - (54)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:13:26 PM] Received response 'textDocument/documentLink - (54)' in 1ms.
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":9}},"target":"https://godoc.org/errors"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":35}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/bson"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":36}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":44}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo/options"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":18}},"target":"https://godoc.org/go.uber.org/zap"},{"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":65}},"target":"https://godoc.org/go.company.com/org/service1/pkg/thing/codec"}]

[Trace - 8:13:26 PM] Sending request 'textDocument/codeAction - (55)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}}

[Trace - 8:13:26 PM] Received response 'textDocument/codeAction - (55)' in 2ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[]}}}]

[Trace - 8:13:26 PM] Sending request 'textDocument/codeAction - (56)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":34,"character":9},"end":{"line":34,"character":9}},"context":{"diagnostics":[]}}

[Trace - 8:13:26 PM] Received response 'textDocument/codeAction - (56)' in 1ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[]}}}]

[Trace - 8:13:26 PM] Sending request 'textDocument/documentSymbol - (57)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:13:26 PM] Received response 'textDocument/documentSymbol - (57)' in 0ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:13:26 PM] Sending request 'textDocument/documentSymbol - (58)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:13:26 PM] Received response 'textDocument/documentSymbol - (58)' in 0ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*zap.Logger","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *zap.Logger, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:13:27 PM] Sending request 'textDocument/codeAction - (59)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":30,"character":37},"end":{"line":30,"character":37}},"context":{"diagnostics":[]}}

[Trace - 8:13:27 PM] Received response 'textDocument/codeAction - (59)' in 1ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[]}}}]

[Trace - 8:13:27 PM] Sending request 'textDocument/documentHighlight - (60)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"position":{"line":34,"character":9}}

[Trace - 8:13:27 PM] Received notification 'window/logMessage'.
Params: {"type":1,"message":"no highlight for /Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go:35:10: /Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go:35:10 is not an identifier"}

[Trace - 8:13:27 PM] Received response 'textDocument/documentHighlight - (60)' in 1ms.
Params: []

[Error - 8:13:27 PM] no highlight for /Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go:35:10: /Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go:35:10 is not an identifier
[Trace - 8:13:27 PM] Sending request 'textDocument/codeAction - (61)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":34,"character":9},"end":{"line":34,"character":9}},"context":{"diagnostics":[]}}

[Trace - 8:13:27 PM] Received response 'textDocument/codeAction - (61)' in 1ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[]}}}]

[Trace - 8:13:28 PM] Sending request 'textDocument/hover - (62)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"position":{"line":34,"character":9}}

[Trace - 8:13:28 PM] Received response 'textDocument/hover - (62)' in 0ms.
Params: {"contents":{"kind":"markdown","value":"go\nvar opts *options.CollectionOptions\n"},"range":{"start":{"line":34,"character":5},"end":{"line":34,"character":9}}}

[Trace - 8:13:28 PM] Sending notification 'textDocument/didChange'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","version":14},"contentChanges":[{"range":{"start":{"line":34,"character":9},"end":{"line":34,"character":9}},"rangeLength":0,"text":" "}]}

[Trace - 8:13:28 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","diagnostics":[{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":18}},"severity":1,"source":"LSP","message":"could not import go.uber.org/zap (no parsed files for package go.uber.org/zap)"},{"range":{"start":{"line":32,"character":22},"end":{"line":32,"character":29}},"severity":1,"source":"LSP","message":"cannot use builder (variable of type *bsoncodec.RegistryBuilder) as *bsoncodec.RegistryBuilder value in argument to codec.RegisterCodecs"}]}

[Trace - 8:13:28 PM] Sending request 'textDocument/hover - (63)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"position":{"line":34,"character":9}}

[Trace - 8:13:28 PM] Received response 'textDocument/hover - (63)' in 0ms.
Params: {"contents":{"kind":"markdown","value":"go\nvar opts *options.CollectionOptions\n"},"range":{"start":{"line":34,"character":5},"end":{"line":34,"character":9}}}

[Trace - 8:13:28 PM] Sending request 'textDocument/documentSymbol - (64)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:13:28 PM] Received response 'textDocument/documentSymbol - (64)' in 0ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*invalid type","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *invalid type, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:13:28 PM] Sending request 'textDocument/documentSymbol - (65)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:13:28 PM] Received response 'textDocument/documentSymbol - (65)' in 1ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*invalid type","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *invalid type, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:13:28 PM] Sending request 'textDocument/documentSymbol - (66)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:13:28 PM] Received response 'textDocument/documentSymbol - (66)' in 0ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*invalid type","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *invalid type, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:13:29 PM] Sending request 'textDocument/documentLink - (67)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:13:29 PM] Received response 'textDocument/documentLink - (67)' in 0ms.
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":9}},"target":"https://godoc.org/errors"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":35}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/bson"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":36}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":44}},"target":"https://godoc.org/go.mongodb.org/mongo-driver/mongo/options"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":18}},"target":"https://godoc.org/go.uber.org/zap"},{"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":65}},"target":"https://godoc.org/go.company.com/org/service1/pkg/thing/codec"}]

[Trace - 8:13:33 PM] Sending request 'textDocument/documentSymbol - (68)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:13:33 PM] Received response 'textDocument/documentSymbol - (68)' in 0ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*invalid type","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *invalid type, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:13:33 PM] Sending request 'textDocument/documentSymbol - (69)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:13:33 PM] Received response 'textDocument/documentSymbol - (69)' in 0ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*invalid type","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *invalid type, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:13:58 PM] Sending notification 'textDocument/didSave'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go","version":14}}

[Trace - 8:13:58 PM] Sending request 'textDocument/documentSymbol - (70)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:13:58 PM] Received response 'textDocument/documentSymbol - (70)' in 0ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*invalid type","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *invalid type, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:13:58 PM] Sending request 'textDocument/documentSymbol - (71)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"}}

[Trace - 8:13:58 PM] Received response 'textDocument/documentSymbol - (71)' in 0ms.
Params: [{"name":"Thing","detail":"struct{...}","kind":23,"range":{"start":{"line":14,"character":5},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":10}},"children":[{"name":"collection","detail":"*mongo.Collection","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":29}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":11}}},{"name":"log","detail":"*invalid type","kind":8,"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":23}},"selectionRange":{"start":{"line":16,"character":1},"end":{"line":16,"character":4}}}]},{"name":"NewThing","detail":"(log *invalid type, database *mongo.Database, collectionName string)","kind":12,"range":{"start":{"line":20,"character":0},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":20,"character":5},"end":{"line":20,"character":13}}}]

[Trace - 8:14:02 PM] Sending request 'textDocument/codeAction - (72)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":32,"character":22},"end":{"line":32,"character":29}},"context":{"diagnostics":[{"range":{"start":{"line":32,"character":22},"end":{"line":32,"character":29}},"message":"cannot use builder (variable of type *bsoncodec.RegistryBuilder) as *bsoncodec.RegistryBuilder value in argument to codec.RegisterCodecs","severity":1,"source":"LSP"}]}}

[Trace - 8:14:02 PM] Received response 'textDocument/codeAction - (72)' in 1ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[{"range":{"start":{"line":34,"character":0},"end":{"line":35,"character":0}},"newText":""},{"range":{"start":{"line":35,"character":0},"end":{"line":35,"character":0}},"newText":"\t_ = opts\n"}]}}}]

[Trace - 8:14:02 PM] Sending request 'textDocument/codeAction - (73)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":18}},"context":{"diagnostics":[{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":18}},"message":"could not import go.uber.org/zap (no parsed files for package go.uber.org/zap)","severity":1,"source":"LSP"}]}}

[Trace - 8:14:02 PM] Received response 'textDocument/codeAction - (73)' in 1ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[{"range":{"start":{"line":34,"character":0},"end":{"line":35,"character":0}},"newText":""},{"range":{"start":{"line":35,"character":0},"end":{"line":35,"character":0}},"newText":"\t_ = opts\n"}]}}}]

[Trace - 8:15:00 PM] Sending request 'textDocument/codeAction - (74)'.
Params: {"textDocument":{"uri":"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go"},"range":{"start":{"line":7,"character":44},"end":{"line":7,"character":44}},"context":{"diagnostics":[]}}

[Trace - 8:15:00 PM] Received response 'textDocument/codeAction - (74)' in 4ms.
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/steelphase/Code/Go/src/go.company.com/org/service1/cmd/service1-serviceA/thing/test-file.go":[{"range":{"start":{"line":34,"character":0},"end":{"line":35,"character":0}},"newText":""},{"range":{"start":{"line":35,"character":0},"end":{"line":35,"character":0}},"newText":"\t_ = opts\n"}]}}}]

@stamblerre
Copy link
Contributor

I've updated the Known Issues on the gopls wiki to indicate this. I'm sorry that we did not make this clear.

@SteelPhase: Thank you so much for investigating this and providing the repro case. We will take a look at it.

@myitcv
Copy link
Member

myitcv commented Aug 21, 2019

@peterbourgon

I am going to have to revert to the latest stable release to be able to do my job effectively.

Just to confirm the current status of gopls (from the wiki):

It is currently in alpha, so it is not stable.

@stamblerre stamblerre modified the milestones: Unreleased, gopls v1.0 Aug 26, 2019
@stamblerre
Copy link
Contributor

@SteelPhase: Your repro case sounds like #33699, so I think we can move the discussion there.

In general, it seems like the root cause of this issue was identified, and it is ultimately a duplicate of #31553. I will close this issue in favor of the duplicates - please comment or create a new issue if I've missed something.

@stamblerre stamblerre modified the milestones: gopls/v1.0.0, gopls/v0.4.0 Jul 22, 2020
@golang golang locked and limited conversation to collaborators Jul 22, 2021
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.
Projects
None yet
Development

No branches or pull requests

8 participants