1
0
mirror of https://github.com/golang/go synced 2024-11-18 18:44:42 -07:00
go/internal/lsp/cmd
Heschi Kreinick 3ded1b734d internal/lsp: add and use nonstandard gopls/diagnoseFiles
Switch the command line client, and its tests, away from the hardcoded
30-second timeout and to a newly-added custom request.

Inconveniently for us, the jsonrpc2 package only serializes requests,
not replies. (Notifications are requests for this purpose.) So, for a
flow like this:

diagnoseFiles -->
  <-- publishDiagnostics
  <-- publishDiagnostics
diagnoseFiles <-- (reply)

...there's actually no guarantee that the incoming requests will be
processed before the reply comes in -- it gets to jump the
serialization. The only way to guarantee previous notifications have
been processed is to send another request. I didn't feel like adding
nonstandard notification support, so I just send a fake diagnostic.

Error handling for untyped JSON is hideous so for now we just panic.
Nobody else should be calling these, or if they do it's at their own
risk.

Fixes golang/go#36518.

Change-Id: I63f8df5bb627c9783314a0d38d2dac8721b3c320
Reviewed-on: https://go-review.googlesource.com/c/tools/+/214583
Run-TryBot: Heschi Kreinick <heschi@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2020-01-15 19:23:06 +00:00
..
test internal/lsp: store workspace package IDs with package paths 2020-01-09 22:04:34 +00:00
capabilities_test.go internal/lsp: change CompletionItem.{Command,TextEdit} to pointers 2019-12-16 22:14:42 +00:00
check.go internal/lsp: add and use nonstandard gopls/diagnoseFiles 2020-01-15 19:23:06 +00:00
cmd_test.go internal/lsp: fix a race in the command line tests 2019-11-22 16:15:56 +00:00
cmd.go internal/lsp: add and use nonstandard gopls/diagnoseFiles 2020-01-15 19:23:06 +00:00
definition.go internal/lsp: improve link in documentation on hover 2019-12-12 22:39:21 +00:00
export_test.go internal/lsp: refactor query definition test to allow adding a new test 2019-03-18 20:06:54 +00:00
folding_range.go tools/gopls: add cmd support for folding_ranges 2019-11-12 00:55:09 +00:00
format.go internal/lsp: address staticcheck warnings 2019-10-04 02:16:23 +00:00
highlight.go internal/lsp: add control flow highlighting for functions 2019-12-02 19:01:20 +00:00
implementation.go tools/gopls: add cmd support for implementation 2019-11-25 20:27:09 +00:00
imports.go internal/lsp: fix the return type of CodeAction() 2019-11-19 17:57:05 +00:00
info.go tools/internal/lsp/cmd: fix documentation 2019-12-30 18:10:14 +00:00
links.go tools/gopls: add command line support for links 2019-11-01 17:18:15 +00:00
query.go internal/lsp: improve link in documentation on hover 2019-12-12 22:39:21 +00:00
references.go internal/lsp: propagate errors from find references 2020-01-09 21:23:09 +00:00
rename.go internal/lsp/cmd: don't create .orig files for rename by default 2019-11-19 21:08:41 +00:00
serve.go internal/lsp: add server instance to debug info 2020-01-15 14:58:21 +00:00
signature.go tools/gopls: add cmd support for signature 2019-10-31 22:07:37 +00:00
suggested_fix.go internal/lsp: add and use nonstandard gopls/diagnoseFiles 2020-01-15 19:23:06 +00:00
symbols.go internal/lsp/cmd: fix documentation 2020-01-02 17:13:01 +00:00