1
0
mirror of https://github.com/golang/go synced 2024-10-01 10:38:33 -06:00
go/internal/lsp
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
..
analysis internal/lsp: plumb fillstruct through analysis 2020-06-15 21:22:08 +00:00
browser internal/lsp: add version and bug commands 2019-05-11 04:16:02 +00:00
cache internal/lsp: un-export (*snapshot).Config to limit it to cache 2020-06-15 22:28:25 +00:00
cmd internal/lsp: plumb fillstruct through analysis 2020-06-15 21:22:08 +00:00
debug internal/lsp/debug: show per-package memory usage 2020-06-12 20:10:52 +00:00
diff internal/testenv: check that external 'diff' tool is the GNU version 2020-05-08 20:46:49 +00:00
fake internal/lsp/lsprpc: forward the go environment in initialize requests 2020-06-16 15:43:56 +00:00
fuzzy internal/lsp: fix errors found by staticcheck 2020-03-19 19:20:54 +00:00
helper internal/lsp: change to helper.go to output a formatted file 2020-01-31 20:35:38 +00:00
lsprpc internal/lsp/lsprpc: forward the go environment in initialize requests 2020-06-16 15:43:56 +00:00
mod internal/lsp: await the initial workspace load in ModHandle 2020-06-12 18:21:55 +00:00
protocol internal/lsp: bring lsp protocol stubs up to date 2020-06-11 18:15:06 +00:00
regtest internal/lsp/lsprpc: forward the go environment in initialize requests 2020-06-16 15:43:56 +00:00
snippet all: fix broken links to LSP specification 2019-10-02 18:32:53 +00:00
source internal/lsp: un-export (*snapshot).Config to limit it to cache 2020-06-15 22:28:25 +00:00
testdata internal/lsp: plumb fillstruct through analysis 2020-06-15 21:22:08 +00:00
tests internal/lsp: plumb fillstruct through analysis 2020-06-15 21:22:08 +00:00
code_action.go internal/lsp: plumb fillstruct through analysis 2020-06-15 21:22:08 +00:00
command.go internal/lsp: un-export (*snapshot).Config to limit it to cache 2020-06-15 22:28:25 +00:00
completion_test.go internal/lsp/source: offer smart "append()" completions 2020-05-20 22:05:37 +00:00
completion.go internal/lsp: read files eagerly 2020-06-11 22:11:59 +00:00
definition.go internal/lsp: read files eagerly 2020-06-11 22:11:59 +00:00
diagnostics.go internal/lsp: read files eagerly 2020-06-11 22:11:59 +00:00
folding_range.go internal/lsp: read files eagerly 2020-06-11 22:11:59 +00:00
format.go internal/lsp: read files eagerly 2020-06-11 22:11:59 +00:00
general.go internal/lsp: cancel the initial workspace load when view shuts down 2020-06-12 18:06:40 +00:00
generate.go internal/lsp: un-export (*snapshot).Config to limit it to cache 2020-06-15 22:28:25 +00:00
highlight.go internal/lsp: read files eagerly 2020-06-11 22:11:59 +00:00
hover.go internal/lsp: read files eagerly 2020-06-11 22:11:59 +00:00
implementation.go internal/lsp: read files eagerly 2020-06-11 22:11:59 +00:00
link.go internal/lsp: await the initial workspace load in ModHandle 2020-06-12 18:21:55 +00:00
lsp_test.go internal/lsp: un-export (*snapshot).Config to limit it to cache 2020-06-15 22:28:25 +00:00
progress.go internal/lsp: factor out progress reporting to a new WorkDone handle 2020-04-28 20:46:18 +00:00
references.go internal/lsp: read files eagerly 2020-06-11 22:11:59 +00:00
rename.go internal/lsp: read files eagerly 2020-06-11 22:11:59 +00:00
reset_golden.sh internal/lsp: fix regeneration of golden files 2019-09-25 13:16:59 +00:00
server_gen.go x/tools/gopls: add support for $/progress functionality 2020-03-16 21:25:24 +00:00
server.go internal/lsp: read files eagerly 2020-06-11 22:11:59 +00:00
signature_help.go internal/lsp: read files eagerly 2020-06-11 22:11:59 +00:00
symbols.go internal/lsp: read files eagerly 2020-06-11 22:11:59 +00:00
text_synchronization.go internal/lsp: read files eagerly 2020-06-11 22:11:59 +00:00
workspace_symbol.go internal/lsp: add config option for SymbolMatch 2020-05-11 19:58:58 +00:00
workspace.go internal/lsp: generate boilerplate stubs for type Server 2020-01-24 14:41:51 +00:00