1
0
mirror of https://github.com/golang/go synced 2024-11-18 18:44:42 -07:00
go/internal/lsp/source
Muir Manders f66ef90017 internal/lsp/source: improve completion after accidental keywords
Completion often fails when the completion prefix happens to be a
keyword. We previously tried to fix this with AST surgery, but
often the accidental keyword is not apparent looking at the AST.
For example:

    chan<>
    foo()

parses as CallExpr{Fun: ChanType{Value: Ident{"foo"}}} with very few
hints that something is wrong, and:

    default
    foo()

is completely omitted from the AST.

Rather than look in the AST, we now instead manually look for a
keyword token that contains the completion position. If we find one,
we treat that as our surrounding identifier.

Updates golang/go#34332.

Change-Id: I68ed0dd905848c0eae61f39ecb8b73adb1e72746
Reviewed-on: https://go-review.googlesource.com/c/tools/+/216961
Run-TryBot: Muir Manders <muir@mnd.rs>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2020-02-06 05:08:22 +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_builtin.go internal/lsp/source: improve completion for "make()" args 2020-02-02 23:20:50 +00:00
completion_format.go internal/lsp: return context cancellation from LookupBuiltin 2020-01-27 18:55:29 +00:00
completion_keywords.go internal/lsp: sort by label after score 2019-12-30 21:11:21 +00:00
completion_labels.go internal/lsp: sort by label after score 2019-12-30 21:11:21 +00:00
completion_literal.go internal/lsp/source: rename "typeInference" to "candidateInference" 2020-01-21 20:43:48 +00:00
completion_snippet.go internal/lsp: merge completion options into source.Options 2020-01-13 20:09:44 +00:00
completion.go internal/lsp/source: improve completion after accidental keywords 2020-02-06 05:08:22 +00:00
deep_completion.go internal/lsp/source: improve completion involving multiple return values 2020-02-06 05:07:08 +00:00
diagnostics.go internal/lsp: add diagnostics in .go files for missing deps in go.mod 2020-02-03 17:57:15 +00:00
errors.go internal/lsp: remove the checkErrors command in internal/lsp/source 2020-01-24 21:19:55 +00:00
folding_range.go internal/lsp: eliminate source.File type and move GetFile to snapshot 2019-12-19 20:51:25 +00:00
format_test.go internal/lsp/source: trim file very carefully 2020-01-17 20:34:13 +00:00
format.go internal/lsp/source: trim file very carefully 2020-01-17 20:34:13 +00:00
highlight.go internal/lsp: add highlighting for import statement 2020-01-17 17:07:20 +00:00
hover.go internal/lsp: don't show links in hover for test functions 2020-02-03 21:56:10 +00:00
identifier.go internal/lsp: don't show links in hover for test functions 2020-02-03 21:56:10 +00:00
implementation.go internal/lsp: refactor find-references and rename 2020-01-16 06:24:15 +00:00
options.go internal/lsp/source: don't allow mutating DefaultOptions 2020-01-31 15:48:08 +00:00
references.go internal/lsp/source: return obj decl first in find-references 2020-01-16 16:57:51 +00:00
rename_check.go internal/lsp: improve literal func completion candidates 2019-11-07 21:18:00 +00:00
rename.go internal/lsp: permit renaming symbols declared in other packages 2020-01-27 18:56:10 +00:00
signature_help.go internal/lsp: fix active parameter for incomplete parentheses 2020-01-27 19:24:44 +00:00
source_test.go internal/lsp: add support for workspace symbol 2020-02-05 19:03:17 +00:00
symbols.go internal/lsp/source: always look up mapper when building ranges 2020-01-16 01:10:02 +00:00
util.go internal/lsp: don't show list errors unless necessary 2020-01-27 19:59:09 +00:00
view.go internal/lsp: don't show links in hover for test functions 2020-02-03 21:56:10 +00:00
workspace_symbol.go internal/lsp: add support for workspace symbol 2020-02-05 19:03:17 +00:00