go/internal/lsp/cache
Rebecca Stambler 831fdb1e18 internal/lsp: push initialization tasks into one function
This change moves as much view initialization code into the
initialization function, instead of having it happen on view create.
Also, the `go env` variables that are collected at inconsistent times
are all collected on view creation. That is sufficient, since the view
is recreated if the environment changes.

I had originally hoped that the initial call to `go env` and the
-modfile detection could become part of this parallel initialization as
well, but you can't create a *packages.Config until the temporary
modfile has been set up, so it still makes sense to do that on view
create. This is, however, the reasoning behind the refactorings in
the -modfile detection in this CL. The main changes are a few renamings
and a split between snapshot.ModFiles and view.modFiles to maximize the
amount of work done in the view. I changed view.modfiles to moduleInformation
because I thought we might want to store additional information there at some
point. Rohan, please let me know if you disagree with any of the changes I made,
and I can revert them.

Fixes golang/go#36487

Change-Id: I504db5a4f41b79bee99ebd391e32e7b520a19569
Reviewed-on: https://go-review.googlesource.com/c/tools/+/214417
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rohan Challa <rohan@golang.org>
2020-01-15 04:46:56 +00:00
..
analysis.go internal/lsp: finish renaming CheckPackageHandle to PackageHandle 2020-01-14 23:56:10 +00:00
builtin.go internal/lsp: push initialization tasks into one function 2020-01-15 04:46:56 +00:00
cache.go internal/lsp: stop requiring file kind when fetching a file 2020-01-09 21:19:36 +00:00
check.go internal/lsp: finish renaming CheckPackageHandle to PackageHandle 2020-01-14 23:56:10 +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 internal/lsp: use URIs instead of FileIdentity in errors 2020-01-14 19:14:11 +00:00
external.go internal/lsp: stop requiring file kind when fetching a file 2020-01-09 21:19:36 +00:00
load.go internal/lsp: push initialization tasks into one function 2020-01-15 04:46:56 +00:00
modfiles.go internal/lsp: push initialization tasks into one function 2020-01-15 04:46:56 +00:00
overlay.go internal/lsp: fix support for watching changed files 2020-01-13 19:19:55 +00:00
parse.go internal/lsp: don't invalidate workspace when a mod file is opened 2020-01-10 21:20:43 +00:00
parse_mod.go internal/lsp: add mapper for go.mod files 2020-01-14 22:04:35 +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: push initialization tasks into one function 2020-01-15 04:46:56 +00:00
snapshot.go internal/lsp: push initialization tasks into one function 2020-01-15 04:46:56 +00:00
view.go internal/lsp: push initialization tasks into one function 2020-01-15 04:46:56 +00:00