1
0
mirror of https://github.com/golang/go synced 2024-10-01 12:28:37 -06:00
go/internal/lsp/fake
Rob Findley 2b5917cebf internal/lsp/lsprpc: forward the go environment in initialize requests
The gopls workspace environment defaults to the process environment in
which gopls was started. This means that when switching environments,
gopls can potentially get a different environment when connecting as an
editor sidecar from when forwarding requests to the daemon.

To (hopefully mostly) mitigate this pain point, inject the Go
environment when forwarding the 'initialize' request, which contains
InitializationOptions containing the 'env' configuration. We could go
further and send the entire os.Environ(), but that seems problematic
both in its unbounded nature, and because in many cases the user may not
actually want to send their process env over the wire. Gopls behavior
should *mostly* be parameterized by gopls binary and Go env, and after
this change these should match for forwarder and daemon.

For go1.15, Explicitly set the GOMODCACHE environment variable in the
regtest sandbox. Without this, regtests were failing in the forwarded
environment because they implicitly shared a module cache.

Fixes golang/go#37830

Change-Id: Ic1b335506f8b481505eac9f74c0df6293dc07158
Reviewed-on: https://go-review.googlesource.com/c/tools/+/234109
Run-TryBot: Robert Findley <rfindley@google.com>
Reviewed-by: Ian Cottrell <iancottrell@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2020-06-16 15:43:56 +00:00
..
client.go internal/lsp: support go mod vendor as a command 2020-06-04 18:33:45 +00:00
doc.go internal/lsp/fake: split up and rename the Workspace type 2020-05-06 18:17:57 +00:00
edit_test.go internal/lsp/regtest: implement formatting and organizeImports 2020-03-02 19:16:53 +00:00
edit.go internal/lsp/fake: define Symbol method on Editor 2020-05-11 20:27:07 +00:00
editor_test.go internal/lsp: support configurable codeLens 2020-05-08 18:47:35 +00:00
editor.go internal/lsp: now connection shutdown works, use it 2020-06-06 01:49:04 +00:00
proxy.go internal/lsp/fake: split up and rename the Workspace type 2020-05-06 18:17:57 +00:00
sandbox.go internal/lsp/lsprpc: forward the go environment in initialize requests 2020-06-16 15:43:56 +00:00
workdir_test.go internal/lsp/fake: split up and rename the Workspace type 2020-05-06 18:17:57 +00:00
workdir.go internal/lsp/fake: split up and rename the Workspace type 2020-05-06 18:17:57 +00:00