go/internal/lsp
Heschi Kreinick e7dfe0279f internal/lsp: remove redundant fields/code after source.Error deletion
Collapse Diagnostic.Kind, Source, and Category into just Source. Remove
code that converted from Diagnostic to Diagnostic. Notes on the changes
I had to make along the way:

- We used to use Kind to determine Severity. Set Severity when the
Diagnostic is created instead.
- Use constants for Source as much as possible -- we still need to use
Analyzer.Name for analysis diagnostics. It would be nice to break that
dependency so that Source was totally opaque, but that's a separate
issue.
- Introduce a new Source for gc_details, "optimizer details". It was "go
compiler" previously.
- Some of the assignments are a little arbitrary. Is inconsistent
vendoring really a "go list" error?
- GetTypeCheckDiagnostics had code to cope with diagnostics that had no
URI associated with them. We now spread such diagnostics to all files
when they are generated.
- Analyze modifies Diagnostics by adding a Tag to them. That means it
has to own them, so I had it clone them. I would like to push that logic
down to the diagnostics, per the TODO, but that's another CL.

And some observations:
- It's obviously tempting to combine DiagnosticSource and
diagnosticSource, but they mean very different things. I'm open to a
better name for one or the other.

Change-Id: If2e861d6fe16bfd2e5ba216cf7e29cf338d0fd25
Reviewed-on: https://go-review.googlesource.com/c/tools/+/288215
Trust: Heschi Kreinick <heschi@google.com>
Run-TryBot: Heschi Kreinick <heschi@google.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2021-02-02 23:37:55 +00:00
..
analysis gopls, internal/lsp: support fillstruct for partially-filled structs 2020-11-30 20:22:45 +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: remove redundant fields/code after source.Error deletion 2021-02-02 23:37:55 +00:00
cmd internal/lsp: update to latest version of LSP protocol 2021-02-02 11:32:59 +00:00
debug internal/lsp: display current diagnostics in the debug server 2021-01-22 19:37:57 +00:00
diff all: add copyright notices to files that are missing them 2021-01-06 17:23:47 +00:00
fake internal/lsp: update to latest version of LSP protocol 2021-02-02 11:32:59 +00:00
fuzzy internal/lsp/fuzzy: fix return value on no match 2020-08-28 15:37:48 +00:00
helper all: add copyright notices to files that are missing them 2021-01-06 17:23:47 +00:00
lsprpc internal/lsp: display current diagnostics in the debug server 2021-01-22 19:37:57 +00:00
mod internal/lsp: remove redundant fields/code after source.Error deletion 2021-02-02 23:37:55 +00:00
protocol internal/lsp/protocol/typescript: update LSP generating code 2021-02-02 17:43:53 +00:00
snippet internal/lsp: offer type converted completion candidates 2020-11-30 20:04:59 +00:00
source internal/lsp: remove redundant fields/code after source.Error deletion 2021-02-02 23:37:55 +00:00
testdata internal/lsp/source: make it an error to rename embedded fields 2021-01-26 13:52:46 +00:00
tests internal/lsp: remove redundant fields/code after source.Error deletion 2021-02-02 23:37:55 +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: remove redundant fields/code after source.Error deletion 2021-02-02 23:37:55 +00:00
code_lens.go internal/lsp: fix misspelling in Codelens option 2020-11-30 17:56:50 +00:00
command.go internal/lsp: remove the source.Error type 2021-02-02 20:40:51 +00:00
completion.go internal/lsp/source: refactor c.item to support deepSearch in all cases 2020-10-01 23:00:09 +00:00
completion_test.go internal/lsp: update to latest version of LSP protocol 2021-02-02 11:32:59 +00:00
debounce.go internal/lsp: add experimental support for multi-phase diagnostics 2020-10-02 14:12:12 +00:00
debounce_test.go internal/lsp: delay longer in TestDebouncer 2020-10-30 20:03:00 +00:00
definition.go internal/lsp/cache: ref-count snapshots 2020-08-03 22:08:54 +00:00
diagnostics.go internal/lsp: remove redundant fields/code after source.Error deletion 2021-02-02 23:37:55 +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/cache: ref-count snapshots 2020-08-03 22:08:54 +00:00
general.go internal/lsp: update to latest version of LSP protocol 2021-02-02 11:32:59 +00:00
highlight.go internal/lsp/cache: ref-count snapshots 2020-08-03 22:08:54 +00:00
hover.go internal/lsp/cache: ref-count snapshots 2020-08-03 22:08:54 +00:00
implementation.go internal/lsp/cache: ref-count snapshots 2020-08-03 22:08:54 +00:00
link.go internal/lsp: add ?utm_source=gopls to links to pkg.go.dev 2020-11-16 00:15:58 +00:00
lsp_test.go internal/lsp: remove redundant fields/code after source.Error deletion 2021-02-02 23:37:55 +00:00
progress.go internal/lsp: update to latest version of LSP protocol 2021-02-02 11:32:59 +00:00
progress_test.go internal/lsp: improvements for command messages 2020-08-21 20:07:30 +00:00
references.go internal/lsp/cache: ref-count snapshots 2020-08-03 22:08:54 +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
semantic.go internal/lsp: update to latest version of LSP protocol 2021-02-02 11:32:59 +00:00
server.go internal/lsp: avoid panic during interface assertion 2021-01-02 18:51:54 +00:00
server_gen.go internal/lsp: update to latest version of LSP protocol 2021-02-02 11:32:59 +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/cache: ref-count snapshots 2020-08-03 22:08:54 +00:00
text_synchronization.go internal/lsp: update to latest version of LSP protocol 2021-02-02 11:32:59 +00:00
workspace.go internal/lsp: fix capability registration for semantic tokens 2020-11-16 18:11:12 +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.