1
0
mirror of https://github.com/golang/go synced 2024-11-18 16:54:43 -07:00
go/internal
Muir Manders 2ef0387721 internal/lsp/source: fix unimported member completion ranking
When completing members on a type checked, unimported package, you get
fully typed members. That means you get deep completions. Because we
downrank the initial unimported package members so much, any deep
completions were dominating the rankings. For example

    context.Back<>

yielded "context.Background().Err" ranked above "context.Background".
Fix by scoring context.Background in this example as
stdScore+tinyRelevanceScore instead of just tinyRelevanceScore. I also
changed untyped candidate scores in the same way so they stay
competitive when you have both imported and unimported candidates.

The other option was to propagate the score penalty into deep
candidates, but that wasn't easy. In general I think you are better off
avoiding big score penalties because they complicate the interplay
between different kinds of candidates. Scoring needs an overhaul, but
at least we are building up our test suite in the meantime.

Change-Id: Ia5d32c057b04174229686cec6ac0542c30e186e2
Reviewed-on: https://go-review.googlesource.com/c/tools/+/218378
Run-TryBot: Muir Manders <muir@mnd.rs>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
2020-02-10 18:17:33 +00:00
..
apidiff all: fix more typos 2019-09-11 15:13:14 +00:00
fastwalk all: fix some staticcheck errors 2020-01-29 04:53:41 +00:00
gopathwalk all: fix some staticcheck errors 2020-01-29 04:53:41 +00:00
imports internal/imports: prevent self-imports in the stdlib 2020-02-06 00:08:43 +00:00
jsonrpc2 internal/lsp: refactor LSP server instantiation 2020-02-06 23:12:37 +00:00
lsp internal/lsp/source: fix unimported member completion ranking 2020-02-10 18:17:33 +00:00
memoize internal/lsp/debug: serve cache entry counts 2020-02-03 22:21:18 +00:00
module imports: stop using go/packages for modules 2019-01-22 20:29:12 +00:00
packagesinternal go/packages: internally expose ForTests in go/packages 2020-01-16 22:11:50 +00:00
semver go/packages: add name= query 2018-10-16 20:20:09 +00:00
span internal/span, internal/lsp: fix URI escaping 2020-02-04 00:54:49 +00:00
telemetry all: fix some staticcheck errors 2020-01-29 04:53:41 +00:00
testenv internal/testenv: reject the resolved 'go' command if it does not match runtime.GOROOT 2019-11-11 19:22:22 +00:00
tool internal/lsp, internal/tool: clean up command line of gopls 2019-12-16 17:36:52 +00:00
xcontext internal/lsp: stop making background contexts everywhere 2019-07-11 16:38:52 +00:00