1
0
mirror of https://github.com/golang/go synced 2024-11-18 16:14:46 -07:00
go/internal/lsp
Rob Findley 0fd2d649e6 internal/lsp/lsprpc: add an LSP forwarder and regtest environment
Add a new Forwarder type to the lsprpc package, which implements the
jsonrpc2.StreamServer interface. This will be used to establish some
parity in the implementation of shared and singleton gopls servers.

Much more testing is needed, as is handling for the many edge cases
around forwarding the LSP, but since this is functionally equivalent to
TCP forwarding (and the -remote flag was already broken), I went ahead
and used the Forwarder to replace the forward method in the serve
command. This means that we can now use the combination of -listen and
-remote to chain together gopls servers... not that there's any reason
to do this.

Also, wrap the new regression tests with a focus on expressiveness when
testing the happy path, as well as parameterizing them so that they can
be run against different client/server execution environments. This
started to be sizable enough to warrant moving them to a separate
regtest package. The lsprpc package tests will instead focus on unit
testing the client-server binding logic.

Updates golang/go#36879
Updates golang/go#34111

Change-Id: Ib98131a58aabc69299845d2ecefceccfc1199574
Reviewed-on: https://go-review.googlesource.com/c/tools/+/218698
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
2020-02-14 14:21:06 +00:00
..
browser
cache internal/lsp: add codelens for go.mod dependency upgrades 2020-02-14 14:15:08 +00:00
cmd internal/lsp/lsprpc: add an LSP forwarder and regtest environment 2020-02-14 14:21:06 +00:00
debug internal/lsp/debug: fix early closure of logfile 2020-02-11 18:05:03 +00:00
diff internal/lsp: fix unified diffs of edits at the end of a file 2019-10-11 16:38:14 +00:00
fake internal/lsp/lsprpc: add an LSP forwarder and regtest environment 2020-02-14 14:21:06 +00:00
fuzzy internal/lsp: make golint happy 2019-12-23 18:17:04 +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: add an LSP forwarder and regtest environment 2020-02-14 14:21:06 +00:00
mod internal/lsp: add codelens for go.mod dependency upgrades 2020-02-14 14:15:08 +00:00
protocol internal/lsp: change return type of PrepareRename to *Range 2020-02-13 20:00:52 +00:00
regtest internal/lsp/lsprpc: add an LSP forwarder and regtest environment 2020-02-14 14:21:06 +00:00
snippet all: fix broken links to LSP specification 2019-10-02 18:32:53 +00:00
source internal/lsp: add codelens for go.mod dependency upgrades 2020-02-14 14:15:08 +00:00
telemetry internal/lsp: log snapshot IDs, don't log context cancellation 2020-01-27 19:20:44 +00:00
testdata internal/lsp: add codelens for go.mod dependency upgrades 2020-02-14 14:15:08 +00:00
tests internal/lsp: add codelens for go.mod dependency upgrades 2020-02-14 14:15:08 +00:00
code_action.go internal/lsp: add quickfixes for missing dependencies in go.mod 2020-02-07 00:16:14 +00:00
command.go internal/lsp: add codelens for go.mod dependency upgrades 2020-02-14 14:15:08 +00:00
completion_test.go internal/lsp: filter keyword completions in tests 2020-02-06 05:08:30 +00:00
completion.go internal/lsp: consolidate completion sorting 2020-01-17 20:30:43 +00:00
definition.go internal/lsp: don't show links in hover for test functions 2020-02-03 21:56:10 +00:00
diagnostics.go internal/lsp: don't use overlays from the session in the snapshot 2020-02-07 19:21:16 +00:00
folding_range.go internal/lsp: remove view.FindPosInPackage and view.FindMapperInPackage 2020-01-13 18:51:11 +00:00
format.go internal/lsp: remove view.FindPosInPackage and view.FindMapperInPackage 2020-01-13 18:51:11 +00:00
general.go internal/lsp: add support for workspace symbol 2020-02-05 19:03:17 +00:00
highlight.go internal/lsp: remove view.FindPosInPackage and view.FindMapperInPackage 2020-01-13 18:51:11 +00:00
hover.go internal/lsp: don't show links in hover for test functions 2020-02-03 21:56:10 +00:00
implementation.go internal/lsp: remove view.FindPosInPackage and view.FindMapperInPackage 2020-01-13 18:51:11 +00:00
link.go internal/lsp/cache: add file contents to ParseGoHandle 2020-02-13 05:05:14 +00:00
lsp_test.go internal/lsp: add codelens for go.mod dependency upgrades 2020-02-14 14:15:08 +00:00
references.go internal/lsp: refactor find-references and rename 2020-01-16 06:24:15 +00:00
rename.go internal/lsp: refactor find-references and rename 2020-01-16 06:24:15 +00:00
reset_golden.sh internal/lsp: fix regeneration of golden files 2019-09-25 13:16:59 +00:00
server_gen.go internal/lsp: change return type of PrepareRename to *Range 2020-02-13 20:00:52 +00:00
server.go internal/lsp: add codelens for go.mod dependency upgrades 2020-02-14 14:15:08 +00:00
signature_help.go internal/lsp: remove unnecessary source.SignatureInformation type 2020-02-06 19:05:38 +00:00
symbols.go internal/lsp: remove view.FindPosInPackage and view.FindMapperInPackage 2020-01-13 18:51:11 +00:00
text_synchronization.go internal/lsp: don't use overlays from the session in the snapshot 2020-02-07 19:21:16 +00:00
workspace_symbol.go internal/lsp: add support for workspace symbol 2020-02-05 19:03:17 +00:00
workspace.go internal/lsp: generate boilerplate stubs for type Server 2020-01-24 14:41:51 +00:00