1
0
mirror of https://github.com/golang/go synced 2024-11-18 14:14:46 -07:00
go/internal/lsp/source
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
..
call_hierarchy.go internal/lsp: add outgoing calls call hierarchy 2020-08-20 01:08:01 +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
comment.go internal/lsp: fix errors found by staticcheck 2020-03-19 19:20:54 +00:00
completion_builtin.go internal/lsp/source: fix a couple issues completing append() args 2020-08-15 16:56:00 +00:00
completion_format.go internal/lsp/source: fix a couple issues completing append() args 2020-08-15 16:56:00 +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_printf_test.go internal/lsp/source: improve completion of printf operands 2020-08-21 13:58:45 +00:00
completion_printf.go internal/lsp/source: improve completion of printf operands 2020-08-21 13:58:45 +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 completion of printf operands 2020-08-21 13:58:45 +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: add outgoing calls call hierarchy 2020-08-20 01:08:01 +00:00
implementation.go internal/lsp/source: fix unexported references of non-workspace packages 2020-08-20 18:02:10 +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/source: fix nil pointer in rename_check 2020-08-17 02:38:11 +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 outgoing calls call hierarchy 2020-08-20 01:08:01 +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/source: improve completion of printf operands 2020-08-21 13:58:45 +00:00
view.go internal/lsp/cache: don't always type check in default mode 2020-08-19 19:22:15 +00:00
workspace_symbol.go internal/memoize: switch from GC-driven to explicit deletion 2020-08-10 19:02:17 +00:00