go/internal/lsp
Robert Findley 0d04f65da9 internal/lsp: re-send diagnostics on file events
Fix golang/go#50267 by ensuring that diagnostics are re-sent following
didOpen or didClose events. Additionally, introduce a new hidden
'chattyDiagnostics' option that causes diagnostics to be resent on
*every* file change event. This latter option is for LSP clients that
get confused when diagnostics are not re-sent for later file versions.
For now, be conservative and only force diagnostic publication on
didOpen and didClose.

Update tests whose 'NoDiagnostics' assertions were broken by the new
behavior.

Fixes golang/go#50267

Change-Id: I6332d66a1851e0d8261599d37020a03b4c598f7d
Reviewed-on: https://go-review.googlesource.com/c/tools/+/420539
Run-TryBot: Robert Findley <rfindley@google.com>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
gopls-CI: kokoro <noreply+kokoro@google.com>
2022-08-02 18:52:36 +00:00
..
analysis internal/lsp: enable fillstruct for generics 2022-07-25 16:40:20 +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: re-send diagnostics on file events 2022-08-02 18:52:36 +00:00
cmd internal/lsp/regtest: allow sharing memoized results across regtests 2022-07-26 21:20:42 +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/lsp/diff: new diff implementation to replace go-diff 2022-07-24 16:55:18 +00:00
fake internal/lsp: Check if user's editor support rename operation 2022-07-29 20:19:23 +00:00
fuzzy internal/analysisinternal: move FindBestMatch to internal/lsp/fuzzy 2022-07-13 21:41:37 +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: allow sharing memoized results across regtests 2022-07-26 21:20:42 +00:00
mod internal/lsp/regtest: allow sharing memoized results across regtests 2022-07-26 21:20:42 +00:00
progress internal/lsp/progress: actually close over Context in WorkDoneWriter 2022-07-12 22:14:18 +00:00
protocol internal/lsp: add text edits for unkeyed literals 2022-06-30 17:08:31 +00:00
regtest internal/lsp/regtest: improvements for shared execution modes 2022-08-02 18:16:22 +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: re-send diagnostics on file events 2022-08-02 18:52:36 +00:00
template internal/lsp: fix source.CompareDiagnostic asymmetry 2022-05-11 17:43:03 +00:00
testdata internal/lsp: treat struct tags as string type 2022-07-26 20:35:51 +00:00
tests internal/lsp: enable fillstruct for generics 2022-07-25 16:40:20 +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/lsp/progress: actually close over Context in WorkDoneWriter 2022-07-12 22:14:18 +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/lsp: re-send diagnostics on file events 2022-08-02 18:52:36 +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/regtest: allow sharing memoized results across regtests 2022-07-26 21:20:42 +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/lsp: treat struct tags as string type 2022-07-26 20:35:51 +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: re-send diagnostics on file events 2022-08-02 18:52:36 +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.