1
0
mirror of https://github.com/golang/go synced 2024-09-30 20:18:33 -06:00
go/internal/lsp/source
Muir Manders 7c0525f229 internal/lsp/source: improve func literal completions
When a signature doesn't name its params, we make up param
names when generating a corresponding func literal:

    var f func(myType) // no param name
    f = fun<> // completes to "func(mt myType) {}"

Previously we would abbreviate named types and fall back to "_" for
builtins or repeated names. We would require placeholders to be
enabled when using "_" so the user could name the param easily. That
left users that don't use placeholders with no completion at all in
this case.

I made the following improvements:
- Generate a name for all params. For builtin types we use the first
  letter, e.g. "i" for "int", "s" for "[]string". If a name is
  repeated, we append incrementing numeric suffixes. For example,
  "func(int, int32)" becomes "func(i1 int, i2 int32").
- No longer require placeholders to be enabled in any case.
- Fix handling of alias types so the param name and type name are
  based on the alias, not the aliasee.

I also tweaked formatVarType to qualify packages using a
types.Qualifier. I needed it to respect a qualifier that doesn't
qualify anything so I could format e.g. "http.Response" as just
"Response" to come up with param names.

Fixes golang/go#38416.

Change-Id: I0ce8a0a4e2485dda41a0aa696d9fd48bea595869
Reviewed-on: https://go-review.googlesource.com/c/tools/+/246262
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2020-08-15 16:17:26 +00:00
..
call_hierarchy.go internal/lsp: add incoming calls hierarchy to gopls 2020-08-13 20:36:30 +00:00
code_lens.go internal/lsp: add "run file benchmarks" code lens 2020-08-12 18:37:58 +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: improve unnamed type completion 2020-08-12 23:05:10 +00:00
completion_format.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
completion_keywords.go internal/lsp/source: improve unnamed type completion 2020-08-12 23:05:10 +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: improve func literal completions 2020-08-15 16:17:26 +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 unnamed type completion 2020-08-12 23:05:10 +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: support function calls in extract variable 2020-08-10 22:41:34 +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: in gc_details change command to use a temporary file. 2020-08-11 15:37:30 +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 a configuration to limit workspace scope to root URI 2020-08-11 01:57:04 +00:00
references.go internal/lsp: add incoming calls hierarchy to gopls 2020-08-13 20:36:30 +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: add incoming calls hierarchy to gopls 2020-08-13 20:36:30 +00:00
symbols.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
types_format.go internal/lsp/source: improve func literal completions 2020-08-15 16:17:26 +00:00
util.go internal/lsp: remove source.Cache 2020-08-05 22:08:24 +00:00
view.go internal/lsp: add initial workspace load notification 2020-08-14 23:09:02 +00:00
workspace_symbol.go internal/memoize: switch from GC-driven to explicit deletion 2020-08-10 19:02:17 +00:00