1
0
mirror of https://github.com/golang/go synced 2024-10-01 04:08:32 -06:00
go/internal/lsp/source
Muir Manders 98e333b8b3 internal/lsp: improve completion for *ast.ArrayTypes
*ast.ArrayTypes are type expressions like "[]foo" or "[2]int". They
show up as standalone types (e.g. "var foo []int") and as part of
composite literals (e.g. "[]int{}"). I made the following
improvements:

- Always expect a type name for array types.
- Add a "type modifier" for array types so completions can be smart
  when we know the expected type. For example:

var foo []int
foo = []i<>

  we know we want a type name, but we also know the expected type is
  "[]int". When evaluating type names such as "int" we turn the type
  into a slice type "[]int" to match against the expected type.
- Tweak the AST fixing to add a phantom selector "_" after a naked
  "[]" so you can complete directly after the right bracket.

I split out the type name related type inference bits into a separate
typeNameInference struct. It had become confusing and complicated,
especially now that you can have an expected type and expect a type
name at the same time.

Change-Id: I00878532187ee5366ab8d681346532e36fa58e5f
Reviewed-on: https://go-review.googlesource.com/c/tools/+/197438
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2019-10-23 16:34:50 +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_keywords.go internal/lsp: add some keyword completions 2019-10-22 20:49:18 +00:00
completion_labels.go internal/lsp: fix label completion in range and type switch stmts 2019-10-22 21:33:09 +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: improve completion for *ast.ArrayTypes 2019-10-23 16:34:50 +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: move error range computations into cache package 2019-10-21 22:12:58 +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: move error range computations into cache package 2019-10-21 22:12:58 +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/lsp: trim down the fuzzy matcher library 2019-10-22 20:51:43 +00:00
suggested_fix.go internal/lsp: move error range computations into cache package 2019-10-21 22:12:58 +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: modify approach to watching changed files 2019-10-22 21:33:45 +00:00