tools/internal/lsp
Muir Manders d73e1c7e25 internal/lsp: fix errors when adding new file to existing package
Previously when you added a new file to an existing package, the new
file would get stuck with the "no package for file" error until you
saved the file and then made changed a different file in the
package. There were two changes required to fix the errors:

First, we need to invalidate the package cache when a new file is
added to a package so that the package will actually re-parse and
re-type check. We now notice if file names changed when updating a
package's metadata and invalidate the package cache accordingly.

Second, when dealing with overlay (unsaved) files, we need to map
the *goFile to the package even if we fail to parse the
file (e.g. the new file fails to parse when it is empty). If we don't
map it to the package, the package won't get refreshed as the file is
changed.

Fixes golang/go#32341

Change-Id: I1a728fbedc79da7d5fe69554a5893efcd1e1d902
GitHub-Last-Rev: e7c3d4c1f8f73b12c87ee76d868cc04893e55808
GitHub-Pull-Request: golang/tools#111
Reviewed-on: https://go-review.googlesource.com/c/tools/+/181417
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2019-06-11 22:22:05 +00:00
..
browser internal/lsp: add version and bug commands 2019-05-11 04:16:02 +00:00
cache internal/lsp: fix errors when adding new file to existing package 2019-06-11 22:22:05 +00:00
cmd internal/span: change URI.Filename so it just returns the filename 2019-06-10 21:39:43 +00:00
debug internal/lsp: add a Version constant 2019-06-11 16:30:27 +00:00
diff internal/lsp: normalise and make public diff<->edit conversions 2019-04-15 20:31:36 +00:00
protocol internal/lsp: send void client response to client/registerCapapbility 2019-05-30 18:43:49 +00:00
snippet internal/lsp: introduce snippet builder object 2019-04-25 18:37:29 +00:00
source internal/lsp: memoize all the parsing 2019-06-11 20:12:58 +00:00
testdata internal/lsp: fix type checking for unsafe package 2019-06-11 19:41:53 +00:00
tests internal/lsp: memoize all the parsing 2019-06-11 20:12:58 +00:00
xlog internal/lsp: add the ability to log back to the client 2019-04-01 16:22:08 +00:00
code_action.go internal/lsp: add structured layers to the cache 2019-05-16 21:30:38 +00:00
completion.go internal/lsp: fix completion insertion 2019-05-17 18:32:58 +00:00
definition.go internal/lsp: attach documentation to signature help 2019-06-06 17:46:28 +00:00
diagnostics.go internal/lsp: allow fine-grained control over vet checks 2019-06-10 19:43:59 +00:00
format.go internal/lsp: add structured layers to the cache 2019-05-16 21:30:38 +00:00
general.go internal/lsp: allow fine-grained control over vet checks 2019-06-10 19:43:59 +00:00
highlight.go internal/lsp: add structured layers to the cache 2019-05-16 21:30:38 +00:00
hover.go internal/lsp: attach documentation to signature help 2019-06-06 17:46:28 +00:00
link.go internal/lsp: build the packages config on demand from proper configuration 2019-05-21 17:12:43 +00:00
lsp_test.go internal/span: change URI.Filename so it just returns the filename 2019-06-10 21:39:43 +00:00
references.go internal/lsp: add find all references 2019-06-10 19:06:22 +00:00
reset_golden.sh internal/lsp: fix definition tests to use golden files 2019-05-10 21:06:55 +00:00
server.go internal/lsp: allow fine-grained control over vet checks 2019-06-10 19:43:59 +00:00
signature_help.go internal/lsp: reply with nil, rather than empty, signature help 2019-06-08 02:21:20 +00:00
symbols.go internal/lsp: add structured layers to the cache 2019-05-16 21:30:38 +00:00
text_synchronization.go internal/span: change URI.Filename so it just returns the filename 2019-06-10 21:39:43 +00:00
util.go internal/span: change URI.Filename so it just returns the filename 2019-06-10 21:39:43 +00:00
workspace.go internal/lsp: build the packages config on demand from proper configuration 2019-05-21 17:12:43 +00:00