go/internal/lsp
Robert Findley 1ae27d3d3d internal/lsp/cache: don't offset invalid positions
The zero value of token.Pos is special: it determines IsValid(), which
has semantic significance in many places.

offsetPositions, which adjusts positions after AST mangling, was
adjusting all positions -- including invalid positions. As a result it
was making invalid positions valid, leaving a nonsensical AST.

Fix it to skip invalid positions.

Change-Id: I844f243f9a4a3f98ace32fe30e934410d11142dd
Reviewed-on: https://go-review.googlesource.com/c/tools/+/361614
Trust: Robert Findley <rfindley@google.com>
Run-TryBot: Robert Findley <rfindley@google.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Suzy Mueller <suzmue@golang.org>
2021-11-05 15:19:55 +00:00
..
analysis internal/lsp/analysis/infertypeargs: reduce diagnostic range 2021-10-19 20:35:15 +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: don't offset invalid positions 2021-11-05 15:19:55 +00:00
cmd internal/lsp/protocol: update LSP definitions and stubs 2021-10-05 16:44:45 +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 /internal/lsp/source: apply directory filters to workspace symbols 2021-10-30 12:32:06 +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: fix returning connection error on disconnect 2021-08-04 13:50:16 +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: update LSP definitions and stubs 2021-10-05 16:44:45 +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 /internal/lsp/source: apply directory filters to workspace symbols 2021-10-30 12:32:06 +00:00
template internal/lsp/templates: replace panic by logging 2021-09-20 18:36:32 +00:00
testdata internal/lsp: adjust extract function range if block statement 2021-10-22 02:18:41 +00:00
tests internal/lsp: temporarily strip subscripts from generic hover 2021-10-23 12:53:38 +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
code_action.go internal/lsp: add extract to method code action 2021-07-23 18:08:39 +00:00
code_lens.go internal/lsp: switch to the new command API 2021-02-09 22:09:28 +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/template: implement completions for template files 2021-09-14 19:06:02 +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: check for invalid URIs in definition 2021-10-29 19:33:54 +00:00
diagnostics.go internal/lsp/diagnostics: avoid erroneous error message for orphaned files 2021-09-20 15:08:51 +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
general.go all: update install commands to go install pkg@version 2021-10-27 02:41:01 +00:00
highlight.go internal/lsp: support template files 2021-05-05 01:45:45 +00:00
hover.go internal/lsp: support template files 2021-05-05 01:45:45 +00:00
implementation.go
link.go
lsp_test.go internal/lsp: temporarily strip subscripts from generic hover 2021-10-23 12:53:38 +00:00
references.go internal/lsp: support template files 2021-05-05 01:45: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
semantic.go internal/lsp: do not send semantic tokens that client doesn't support 2021-10-26 18:33:39 +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: update LSP definitions and stubs 2021-10-05 16:44:45 +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: support template files 2021-05-05 01:45: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/lsp: report used semantic token order in registerCapability 2021-05-19 16:08:23 +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.