1
0
mirror of https://github.com/golang/go synced 2024-11-18 17:54:57 -07:00
go/internal/lsp/cache
Rebecca Stambler e23f2f3ad7 internal/lsp: reload metadata for orphaned files
go/packages overlay handling only really works for contains queries
(file=), so our approach of reloading packages by package path (for
workspace packages) wasn't handling newly created packages that need to
be handled through overlays. Workaround this by reloading metadata for
individual files that are missing it by running extra contains queries
(only after the first metadata load for package paths). Be careful not
to reload the same file multiple times if the first load did not succeed.

Somewhat related, clear out `go list` errors in packages that go
through overlay handling, since they will often be rendered irrelevant.
I'm not sure if this is the right move, but if it's not, then we will
have to do extra work to disregard those errors in gopls.

Fixes golang/go#36661.
Fixes golang/go#36635.

Change-Id: Ib83cffcdf8a3e07da0f30e734d5e2c89691e1aba
Reviewed-on: https://go-review.googlesource.com/c/tools/+/216141
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
2020-01-24 20:59:04 +00:00
..
analysis.go internal/lsp: finish renaming CheckPackageHandle to PackageHandle 2020-01-14 23:56:10 +00:00
cache.go internal/lsp: remove the Context argument from NewSession 2020-01-21 23:07:03 +00:00
check.go internal/lsp/cache: fix GOPATH vendoring 2020-01-24 00:03:48 +00:00
debug.go internal/lsp: don't clear file contents on save 2019-12-19 23:08:27 +00:00
error_test.go internal/lsp: refactor error handling code in type-checking 2019-10-21 18:57:46 +00:00
errors.go go/packages: handle an overlay edge case with test variants 2020-01-23 02:22:18 +00:00
external.go internal/lsp: check that a file handle is unmodified before read 2020-01-23 20:52:07 +00:00
load.go internal/lsp: reload metadata for orphaned files 2020-01-24 20:59:04 +00:00
mod_tidy.go internal/lsp/cache: move mod-related functions and file 2020-01-24 14:45:41 +00:00
overlay.go internal/lsp: support multiple URIs in (*view).invalidateContent 2020-01-23 20:19:14 +00:00
parse.go internal/lsp: don't invalidate workspace when a mod file is opened 2020-01-10 21:20:43 +00:00
pkg.go internal/lsp: load metadata for a single package ID, when needed 2019-12-30 21:09:35 +00:00
session.go internal/lsp: reload metadata for orphaned files 2020-01-24 20:59:04 +00:00
snapshot.go internal/lsp: reload metadata for orphaned files 2020-01-24 20:59:04 +00:00
view.go internal/lsp: reload metadata for orphaned files 2020-01-24 20:59:04 +00:00