1
0
mirror of https://github.com/golang/go synced 2024-11-18 16:54:43 -07:00
go/internal/lsp
Rob Findley f038785680 internal/lsp/regtest: generalize expectations beyond diagnostic messages
Due to the asynchronous and non-transactional nature of the LSP, writing
regtests requires waiting for certain conditions to be met in the client
editor. To this point, the only type of condition for which we supported
waiting was the presence of diagnostic messages, but we can in principle
wait for anything that is triggered by a server notification.

This change generalizes the notion of expectations to also encompass log
messages. Doing this required expanding the value returned from checking
expectations to include a new "Unmeetable" verdict, to account for cases
where we know that a condition will never be met (for example if it is a
negative assertion). This may be useful for diagnostics as well.

A test is added to demonstrate these new expectations, where the initial
workspace load fails due to unfetchable dependencies.

Additionally, some helper flags are added to help debug regtests without
a code change, by allowing changing the test timeout, printing logs, and
printing goroutine profiles.

Updates golang/go#36879

Change-Id: I4cc194e10a4f181ad36a1a7abbb08ff41954b642
Reviewed-on: https://go-review.googlesource.com/c/tools/+/228399
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2020-04-16 21:39:01 +00:00
..
analysis internal/lsp: add type error fixes to existing diagnostics 2020-04-08 01:45:16 +00:00
browser
cache internal/lsp/cache: hide type errors if we fix up the AST 2020-04-10 04:07:51 +00:00
cmd internal/lsp: fix imports issue with duplicate package decl 2020-04-16 06:17:24 +00:00
debug internal/lsp: make tag iteration allocation-free 2020-04-08 13:20:38 +00:00
diff internal/lsp/diff/difftest: ignore for GOOS=illumos 2020-04-14 02:36:50 +00:00
fake internal/lsp/regtest: add support for custom test proxy data 2020-04-16 19:38:27 +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/regtest: add support for custom test proxy data 2020-04-16 19:38:27 +00:00
mod internal/lsp: add type error fixes to existing diagnostics 2020-04-08 01:45:16 +00:00
protocol internal/jsonrpc2: split reply from request 2020-04-13 01:58:12 +00:00
regtest internal/lsp/regtest: generalize expectations beyond diagnostic messages 2020-04-16 21:39:01 +00:00
snippet
source internal/lsp: fix imports issue with duplicate package decl 2020-04-16 06:17:24 +00:00
testdata internal/lsp: fix imports issue with duplicate package decl 2020-04-16 06:17:24 +00:00
tests internal/lsp: add type error fixes to existing diagnostics 2020-04-08 01:45:16 +00:00
code_action.go internal/lsp: add type error fixes to existing diagnostics 2020-04-08 01:45:16 +00:00
command.go internal/lsp/cache: add concurrency error check for go cmds 2020-04-08 03:22:09 +00:00
completion_test.go internal/span,lsp: disambiguate URIs, DocumentURIs, and paths 2020-02-14 22:51:03 +00:00
completion.go internal/lsp: avoid logging context cancellation 2020-03-31 01:46:33 +00:00
definition.go internal/lsp/source: return location(s) for imported packages 2020-03-09 16:25:02 +00:00
diagnostics.go internal/lsp: add type error fixes to existing diagnostics 2020-04-08 01:45:16 +00:00
folding_range.go internal/lsp: check for file URIs on LSP requests 2020-02-14 22:51:26 +00:00
format.go internal/lsp: support textDocument/formatting for .mod extension 2020-03-06 13:51:27 +00:00
general.go internal/jsonrpc2: replace NewErrorf with fmt.Errorf 2020-04-13 01:57:14 +00:00
generate.go internal/lsp, go/packages: don't log context cancellation errors 2020-04-03 19:08:13 +00:00
highlight.go internal/lsp: move the telemetry package 2020-03-18 13:22:49 +00:00
hover.go internal/lsp: support textDocument/hover for .mod extension 2020-02-26 15:59:49 +00:00
implementation.go internal/lsp: check for file URIs on LSP requests 2020-02-14 22:51:26 +00:00
link.go internal/lsp: linkify IP addresses in textDocument/documentLink 2020-04-10 03:56:59 +00:00
lsp_test.go internal/lsp: fix imports issue with duplicate package decl 2020-04-16 06:17:24 +00:00
references.go internal/lsp: refactor references/rename/implementations 2020-03-27 17:09:18 +00:00
rename.go internal/lsp: check for file URIs on LSP requests 2020-02-14 22:51:26 +00:00
reset_golden.sh
server_gen.go x/tools/gopls: add support for $/progress functionality 2020-03-16 21:25:24 +00:00
server.go internal/jsonrpc2: replace NewErrorf with fmt.Errorf 2020-04-13 01:57:14 +00:00
signature_help.go internal/telemetry: delete the event.TagOf method 2020-03-18 13:23:15 +00:00
symbols.go internal/lsp: move the telemetry package 2020-03-18 13:22:49 +00:00
text_synchronization.go internal/jsonrpc2: replace NewErrorf with fmt.Errorf 2020-04-13 01:57:14 +00:00
workspace_symbol.go internal/lsp: migrate telemetry to using the event package 2020-03-12 03:59:16 +00:00
workspace.go internal/lsp: generate boilerplate stubs for type Server 2020-01-24 14:41:51 +00:00