go/internal/lsp
Robert Findley 3db2cdc060 internal/lsp: wait for ongoing work to complete during server shutdown
Add a new WaitGroup to the View that allows waiting for all snapshot
destroy operations to complete. This helps ensure that the server
properly cleans up resources when shutting down, and lets us remove
work-arounds in the gopls regtests intended to avoid races during
shutdown.

Also:
 - re-enable postfix completion tests that had to be disabled due to
   being too racy
 - rename the inlayHints regtest package to follow lower-cased naming
   conventions
 - add several TODOs

Fixes golang/go#50707
Fixes golang/go#53735

Change-Id: If216763fb7a32f487f6116459e3dc45f4c903b8a
Reviewed-on: https://go-review.googlesource.com/c/tools/+/416594
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
2022-07-12 14:39:29 +00:00
..
analysis internal: remove unneeded FileSets 2022-06-06 20:47:10 +00:00
browser
bug internal/lsp: add missing bug reporting, and panic during marker tests 2022-05-31 14:14:38 +00:00
cache internal/lsp: wait for ongoing work to complete during server shutdown 2022-07-12 14:39:29 +00:00
cmd internal/lsp: initial test set up for inlay hints 2022-06-09 20:27:29 +00:00
command gopls/internal/vulncheck: include nonaffecting vulnerability info 2022-06-16 14:42:12 +00:00
debug internal/lsp/debug: reduce critical sections in trace 2022-06-17 20:37:28 +00:00
diff internal/span: eliminate TokenConverter 2022-06-01 19:19:15 +00:00
fake internal/lsp: add InlayHint regtests 2022-06-28 15:22:17 +00:00
fuzzy gopls, internal/lsp: gofmt 2022-04-12 17:41:31 +00:00
helper internal/lsp/protocol: update LSP definitions and stubs 2021-10-05 16:44:45 +00:00
lsppos internal/lsp/lsppos: reduce allocations in NewMapper 2022-07-01 16:40:13 +00:00
lsprpc internal/lsp/regtest: don't run the connection on the test context 2022-06-10 12:48:42 +00:00
mod internal/lsp/cache: make snapshot reference counting uniform 2022-07-11 18:57:05 +00:00
progress internal/lsp/progress: detach context for all progress notifications 2022-06-02 20:26:04 +00:00
protocol internal/lsp: add text edits for unkeyed literals 2022-06-30 17:08:31 +00:00
regtest internal/lsp: wait for ongoing work to complete during server shutdown 2022-07-12 14:39:29 +00:00
safetoken internal/span: eliminate TokenConverter 2022-06-01 19:19:15 +00:00
snippet lsp/completion: fix literal completions with type params 2022-04-26 02:30:39 +00:00
source internal/lsp/source: use token.File-agnostic positions to dedupe refs 2022-07-12 14:39:04 +00:00
template internal/lsp: fix source.CompareDiagnostic asymmetry 2022-05-11 17:43:03 +00:00
testdata lsp/completion: fix ranking of *types.PkgName candidates 2022-07-01 14:13:48 +00:00
tests internal/lsp: add settings for inlay hints and enable 2022-06-22 17:08:41 +00:00
work internal/lsp/source: eliminate ColumnMapper.PointSpan in favor of Pos 2022-06-01 19:19:59 +00:00
README.md
call_hierarchy.go
code_action.go internal/span: make NewRange accept File, not FileSet 2022-07-06 19:40:50 +00:00
code_lens.go internal/lsp: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +00:00
command.go internal/memoize: delete Generation and Bind 2022-07-08 19:22:01 +00:00
completion.go internal/lsp/source: remove workaround for newline terminated files 2022-06-01 15:40:59 +00:00
completion_test.go
debounce.go internal/lsp: adopt bcmills' suggestion for an improved debouncer API 2021-07-13 16:40:23 +00:00
debounce_test.go internal/lsp: adopt bcmills' suggestion for an improved debouncer API 2021-07-13 16:40:23 +00:00
definition.go internal/lsp: use the correct converter for mapped range offsets 2022-06-01 15:32:54 +00:00
diagnostics.go internal/span: make NewRange accept File, not FileSet 2022-07-06 19:40:50 +00:00
folding_range.go
format.go internal/lsp: add support for formatting go.work files 2022-02-15 17:15:32 +00:00
general.go internal/lsp: wait for ongoing work to complete during server shutdown 2022-07-12 14:39:29 +00:00
highlight.go internal/lsp: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +00:00
hover.go internal/lsp: add hover for go.work use statements 2022-03-04 19:55:36 +00:00
implementation.go
inlay_hint.go internal/lsp: rename viewport to range 2022-06-23 18:17:15 +00:00
link.go internal/lsp: consolidate .go/go.mod link logic 2022-07-07 14:56:05 +00:00
lsp_test.go internal/lsp: rename viewport to range 2022-06-23 18:17:15 +00:00
references.go internal/lsp: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +00:00
rename.go internal/lsp: use placeholders with prepare rename 2022-02-15 00:29:01 +00:00
reset_golden.sh
semantic.go internal/span: make NewRange accept File, not FileSet 2022-07-06 19:40:50 +00:00
server.go internal/lsp/progress: detach context for all progress notifications 2022-06-02 20:26:04 +00:00
server_gen.go internal/lsp: support textDocument/inlayHint for parameter names 2022-06-10 19:31:11 +00:00
signature_help.go
symbols.go internal/lsp: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +00:00
text_synchronization.go internal/lsp/cache: make snapshot reference counting uniform 2022-07-11 18:57:05 +00:00
workspace.go internal/lsp/cache: make snapshot reference counting uniform 2022-07-11 18:57:05 +00:00
workspace_symbol.go

README.md

lsp

internal/lsp provides much of the Language Server Protocol (lsp) implementation for gopls.

Documentation for users and contributors can be found in the gopls/doc directory.