1
0
mirror of https://github.com/golang/go synced 2024-11-18 14:54:40 -07:00
go/internal/lsp/testdata
Muir Manders 9ac8e33b36 internal/lsp/source: improve completion of printf operands
We now rank printf operand candidates according to the corresponding
formatting verb. We follow what fmt allows for the most part, but I
omitted some things because they are uncommon and would result in many
false positives, or didn't seem worth it to support:

- We don't prefer fmt.Stringer or error types for "%x" or "%X".
- We don't prefer pointers for any verbs except "%p".
- We don't prefer recursive application of verbs (e.g. we won't prefer
  []string for "%s").

I decided against sharing code with the printf analyzer. It was
tangled somewhat with go/analysis, and I needed only a very small
subset of the format parsing.

I tweaked candidate type evaluation to accommodate the printf hints.
We now skip expected type of "interface{}" when matching candidate
types because it matches everything and would always supersede the
coarser object kind checks.

Fixes golang/go#40485.

Change-Id: I6440702e33d5ec85d701f8be65453044b5dab746
Reviewed-on: https://go-review.googlesource.com/c/tools/+/246699
Run-TryBot: Muir Manders <muir@mnd.rs>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
2020-08-21 13:58:45 +00:00
..
lsp internal/lsp/source: improve completion of printf operands 2020-08-21 13:58:45 +00:00
missingdep internal: add call hierarchy cmd and lsp scaffolding 2020-08-07 20:22:52 +00:00
missingtwodep internal: add call hierarchy cmd and lsp scaffolding 2020-08-07 20:22:52 +00:00
unused internal/lsp/cache: refactor go mod tidy error logic 2020-08-07 22:43:23 +00:00
upgradedep internal/lsp/mod: add go mod vendor and go mod tidy lenses 2020-08-18 00:58:47 +00:00