1
0
mirror of https://github.com/golang/go synced 2024-11-18 14:14:46 -07:00
go/internal/lsp/source
Muir Manders 6f4f008689 internal/lsp/source: improve completion in switch cases
Now we downrank candidates that have already been used in other switch
cases. For example:

    switch time.Now().Weekday() {
    case time.Monday:
    case time.<> // downrank time.Monday
    }

It wasn't quite as simple as tracking the seen types.Objects.
Consider this example:

    type foo struct {
      i int
    }

    var a, b foo

    switch 123 {
    case a.i:
    case <>
    }

At <> we don't want to downrank "b.i" even though "i" is represented
as the same types.Object for "a.i" and "b.i". To accommodate this, we
track having seen ["a", "i"] together. We will downrank "a.i", but not
"b.i".

I applied only a minor 0.9 downranking when the candidate has already
been used in another case clause. It is hard to know what the user is
planning. For instance, in the preceding example the user could intend
to write "a.i + 1", so we mustn't downrank "a.i" too much.

Change-Id: I62debc5be3d5d310deb69d11770cf5f8bd9add1d
Reviewed-on: https://go-review.googlesource.com/c/tools/+/247337
Run-TryBot: Muir Manders <muir@mnd.rs>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2020-08-09 01:28:40 +00:00
..
call_hierarchy.go internal: add call hierarchy cmd and lsp scaffolding 2020-08-07 20:22:52 +00:00
code_lens.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
command.go internal/lsp: fix bug in extract function when highlighting full line 2020-08-07 18:02:56 +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: fix errors found by staticcheck 2020-03-19 19:20:54 +00:00
completion_builtin.go internal/lsp/source: simplify variadic logic in completion 2020-08-06 02:28:45 +00:00
completion_format.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
completion_keywords.go internal/lsp/source: offer loop keyword completions in range stmt 2020-03-12 04:57:24 +00:00
completion_labels.go internal/lsp: use one context throughout completion 2020-04-06 16:51:37 +00:00
completion_literal.go internal/lsp/source: simplify variadic logic in completion 2020-08-06 02:28:45 +00:00
completion_snippet.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
completion_statements.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
completion.go internal/lsp/source: improve completion in switch cases 2020-08-09 01:28:40 +00:00
deep_completion_test.go internal/lsp/source: fix bug in deep completion score tracking 2020-08-08 16:17:06 +00:00
deep_completion.go internal/lsp/source: fix bug in deep completion score tracking 2020-08-08 16:17:06 +00:00
diagnostics.go internal/lsp: separate LSP files from FS files 2020-08-03 22:16:06 +00:00
extract.go internal/lsp: fix bug in extract function when highlighting full line 2020-08-07 18:02:56 +00:00
folding_range.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
format_test.go internal/lsp: handle bad formatting with CRLF line endings 2020-07-28 16:05:17 +00:00
format.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
gc_annotations.go internal/lsp: add options to control which details gc_details shows 2020-08-05 22:37:31 +00:00
highlight.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
hover.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
identifier_test.go internal/lsp/source: add a unit test for searchForEnclosing 2020-07-28 18:51:24 +00:00
identifier.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
implementation.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
options.go internal/lsp: add options to control which details gc_details shows 2020-08-05 22:37:31 +00:00
references.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
rename_check.go internal/lsp: add changeMethods logic to rename check 2020-07-13 19:50:33 +00:00
rename.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
signature_help.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
source_test.go internal/lsp: release resources for call hierarchy file requests 2020-08-07 21:04:51 +00:00
symbols.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
types_format.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
util.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
view.go internal/lsp: watch directories in replace targets and update on changes 2020-08-07 23:35:17 +00:00
workspace_symbol.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00