mirror of
https://github.com/golang/go
synced 2024-11-18 18:44:42 -07:00
f66ef90017
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> |
||
---|---|---|
.. | ||
comment_test.go | ||
comment.go | ||
completion_builtin.go | ||
completion_format.go | ||
completion_keywords.go | ||
completion_labels.go | ||
completion_literal.go | ||
completion_snippet.go | ||
completion.go | ||
deep_completion.go | ||
diagnostics.go | ||
errors.go | ||
folding_range.go | ||
format_test.go | ||
format.go | ||
highlight.go | ||
hover.go | ||
identifier.go | ||
implementation.go | ||
options.go | ||
references.go | ||
rename_check.go | ||
rename.go | ||
signature_help.go | ||
source_test.go | ||
symbols.go | ||
util.go | ||
view.go | ||
workspace_symbol.go |