1
0
mirror of https://github.com/golang/go synced 2024-10-01 04:08:32 -06:00
go/internal/lsp/source
Heschi Kreinick eb46839a96 internal/imports: return non-stdlib candidates from GetAllCandidates
Scan most sources, including GOPATH, the module cache, the main module,
and replace targets as appropriate. Use the cached stdlib instead of
scanning GOROOT.

We heavily cache the contents of the module cache, so performance is
decent. But we have to look at all the modules not in the module cache
too to get the right versions of modules (see
(*ModuleResolver).canonicalize), which currently isn't cached at all,
even just for a single run. That ends up being pretty expensive.

The implementation changes are relatively small; add package name
loading to scan(), cache that result, and allow callers to control what
directories are scanned so that it can skip GOROOT.

I also cleared out most of the stdlib from the unimported completion
test and added a simple external completion to it for safety's sake.

Change-Id: Id50fd4703b1126be35a000fe90719e19c3ab84bf
Reviewed-on: https://go-review.googlesource.com/c/tools/+/199178
Run-TryBot: Heschi Kreinick <heschi@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2019-10-21 20:45:15 +00:00
..
comment_test.go internal/lsp: convert comments to markdown before sending to client 2019-10-04 18:35:38 +00:00
comment.go internal/lsp: convert comments to markdown before sending to client 2019-10-04 18:35:38 +00:00
completion_format.go internal/lsp: associate package with its snapshot 2019-10-18 19:08:19 +00:00
completion_labels.go internal/lsp: add label completion candidates 2019-10-16 23:06:01 +00:00
completion_literal.go internal/lsp: don't qualify literal candidates in *ast.SelectorExpr 2019-10-16 23:29:27 +00:00
completion_snippet.go internal/lsp: don't overwrite suffix when inserting completion 2019-10-02 20:07:45 +00:00
completion.go internal/lsp: add label completion candidates 2019-10-16 23:06:01 +00:00
deep_completion.go internal/lsp: search for deep completions across function calls 2019-10-17 03:50:25 +00:00
diagnostics.go internal/lsp: return spanForRange function to fix build 2019-10-21 19:54:44 +00:00
errors.go internal/lsp: move the missing imports handling into the metadata 2019-09-25 23:05:17 +00:00
folding_range.go internal/lsp: rework snapshots and cache FileHandles per-snapshot 2019-10-01 16:26:22 +00:00
format.go internal/lsp: refactor error handling code in type-checking 2019-10-21 18:57:46 +00:00
highlight.go internal/lsp: stop cluttering logs with highlight errors 2019-10-07 17:20:23 +00:00
hover.go internal/lsp: associate package with its snapshot 2019-10-18 19:08:19 +00:00
identifier.go internal/lsp: associate package with its snapshot 2019-10-18 19:08:19 +00:00
imports_test.go internal/lsp: abstract the diff library so it can be substituted 2019-08-20 03:37:07 +00:00
imports.go internal/lsp: abstract the diff library so it can be substituted 2019-08-20 03:37:07 +00:00
options.go internal/lsp: use options hooks to install diff driver 2019-10-11 16:38:31 +00:00
references.go internal/lsp: associate package with its snapshot 2019-10-18 19:08:19 +00:00
rename_check.go internal/lsp: use memoize package to cache source.Packages 2019-08-13 21:41:43 +00:00
rename.go internal/lsp: associate package with its snapshot 2019-10-18 19:08:19 +00:00
signature_help.go internal/lsp: associate package with its snapshot 2019-10-18 19:08:19 +00:00
source_test.go internal/imports: return non-stdlib candidates from GetAllCandidates 2019-10-21 20:45:15 +00:00
suggested_fix.go internal/lsp: cache analysis using memoize package 2019-10-14 17:19:42 +00:00
symbols.go internal/lsp: return an error from {Narrowest,Widest}CheckPackageHandle 2019-10-11 16:51:06 +00:00
tidy.go internal/lsp: support running go mod tidy as a code action 2019-09-20 13:08:46 +00:00
util.go internal/lsp: associate package with its snapshot 2019-10-18 19:08:19 +00:00
view.go internal/lsp: refactor error handling code in type-checking 2019-10-21 18:57:46 +00:00