1
0
mirror of https://github.com/golang/go synced 2024-10-01 09:38:36 -06:00
go/internal/lsp/cache
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
..
cache.go internal/lsp: using memoize for all file contents 2019-06-11 20:12:47 +00:00
check.go internal/lsp: fix errors when adding new file to existing package 2019-06-11 22:22:05 +00:00
external.go internal/lsp: using memoize for all file contents 2019-06-11 20:12:47 +00:00
file.go internal/lsp: remove source.FileContent 2019-06-06 05:02:23 +00:00
gofile.go internal/lsp: create types for package paths and IDs 2019-06-11 21:58:02 +00:00
load.go internal/lsp: fix errors when adding new file to existing package 2019-06-11 22:22:05 +00:00
modfile.go internal/lsp: add modfile, sumfile structs, require Go files for diagnostics 2019-05-24 21:02:28 +00:00
parse.go internal/lsp: fix errors when adding new file to existing package 2019-06-11 22:22:05 +00:00
pkg.go internal/lsp: fix errors when adding new file to existing package 2019-06-11 22:22:05 +00:00
session.go internal/lsp: create types for package paths and IDs 2019-06-11 21:58:02 +00:00
sumfile.go internal/lsp: add modfile, sumfile structs, require Go files for diagnostics 2019-05-24 21:02:28 +00:00
view.go internal/lsp: fix errors when adding new file to existing package 2019-06-11 22:22:05 +00:00
watcher.go internal/lsp: add file watching and use it to trigger invalidations 2019-05-24 14:03:12 +00:00