go/internal/lsp
Robert Findley 4e31bdea78 internal/lsp/cache: avoid panic in mod diags with redundant requires
modfile.File.SetRequire panics on duplicate requires with conflicting
versions. Avoid the panic by returning an error in this case.

Skip directness diagnostics that run into this error, rather than
invalidating all diagnostics.

Fixes golang/go#50425

Change-Id: Ic6379ecc48581e7fd7b470ed295e449833c351dd
Reviewed-on: https://go-review.googlesource.com/c/tools/+/376394
Trust: Robert Findley <rfindley@google.com>
Run-TryBot: Robert Findley <rfindley@google.com>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
2022-01-13 21:34:46 +00:00
..
analysis gopls/doc: fix rendering of example for the infertypeargs analyzer 2021-12-03 18:55:11 +00:00
browser all: replace all usages of os/exec with golang.org/x/sys/execabs 2021-01-19 22:25:03 +00:00
cache internal/lsp/cache: avoid panic in mod diags with redundant requires 2022-01-13 21:34:46 +00:00
cmd internal/template: identify template files by the templateExtensions option 2022-01-13 17:30:17 +00:00
command internal/lsp/command: fix typo in comment 2021-09-19 16:34:52 +00:00
debug internal/lsp/debug: improve readability of session options 2021-09-28 20:53:23 +00:00
diff all: add copyright notices to files that are missing them 2021-01-06 17:23:47 +00:00
fake gopls/internal/regtest: add regression tests for template diagnostics 2022-01-13 20:57:08 +00:00
fuzzy internal/lsp/fuzzy: add a new fuzzy matcher optimized for Go symbols 2021-08-09 20:21:06 +00:00
helper internal/lsp/protocol: update LSP definitions and stubs 2021-10-05 16:44:45 +00:00
lsppos internal/lsp/source: compute imports text edits from scratch 2021-07-22 17:13:07 +00:00
lsprpc internal/lsp/lsprpc: increase timeout for TestEnvForwarding 2021-11-11 03:25:14 +00:00
mod internal/lsp: in degraded mode, limit the workspace to active packages 2021-07-26 20:36:31 +00:00
progress internal/lsp: move the progress tracker to the session 2021-06-16 01:01:29 +00:00
protocol internal/lsp/protocol: fix whitespace in comments 2021-12-01 19:09:57 +00:00
regtest /internal/lsp/source: apply directory filters to workspace symbols 2021-10-30 12:32:06 +00:00
snippet internal/lsp/source/completion: add postfix snippet completions 2021-03-29 17:27:46 +00:00
source gopls: change the default value for templateExtensions to be empty 2022-01-13 20:56:24 +00:00
template internal/lsp/template: remove the skipTemplate guard 2022-01-13 20:55:59 +00:00
testdata internal/lsp: foldable multiline strings 2022-01-04 20:54:25 +00:00
tests internal/lsp/tests: re-enable MultiModule tests on plan9 2022-01-07 05:34:58 +00:00
README.md internal/lsp: add READMEs that describe tests, how to run tests 2020-12-03 17:03:53 +00:00
call_hierarchy.go internal/lsp: release resources for call hierarchy file requests 2020-08-07 21:04:51 +00:00
code_action.go internal/lsp: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +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/source: consider test variants when finding pkg from pos 2021-09-08 14:51:59 +00:00
completion.go internal/lsp: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +00:00
completion_test.go internal/lsp/completion: move postfix completions behind option 2021-03-29 18:55:49 +00:00
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: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +00:00
diagnostics.go internal/lsp: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +00:00
folding_range.go all: add copyright notices to files that are missing them 2021-01-06 17:23:47 +00:00
format.go internal/lsp: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +00:00
general.go internal/lsp: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +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: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +00:00
implementation.go internal/lsp/cache: ref-count snapshots 2020-08-03 22:08:54 +00:00
link.go internal/lsp: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +00:00
lsp_test.go internal/template: identify template files by the templateExtensions option 2022-01-13 17:30:17 +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/source: make it an error to rename embedded fields 2021-01-26 13:52:46 +00:00
reset_golden.sh internal/lsp: fix regeneration of golden files 2019-09-25 13:16:59 +00:00
semantic.go internal/lsp: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +00:00
server.go internal/lsp: add a setting to batch didChangeWatchedFile notifications 2021-07-08 19:55:54 +00:00
server_gen.go internal/lsp/protocol: bring the LSP stubs up to date 2021-12-01 15:05:46 +00:00
signature_help.go internal/lsp: update to latest version of LSP protocol 2021-02-02 11:32:59 +00:00
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: signal diagnostic completion if modification failed 2021-07-13 20:49:08 +00:00
workspace.go internal/template: identify template files by the templateExtensions option 2022-01-13 17:30:17 +00:00
workspace_symbol.go internal/lsp/source: add a new symbolStyle configuration option 2020-06-26 17:13:37 +00:00

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.