1
0
mirror of https://github.com/golang/go synced 2024-11-18 16:04:44 -07:00
go/internal/lsp/source
Rebecca Stambler 9267083701 internal/lsp: support refactor.extract through commands
The logic for extracting a function is quite signficant, and the code
is expensive enough that we should only call it when requested by the
user. This means that we should support extracting through a command
rather than text edits in the code action.

To that end, we create a new struct for commands. Features like extract
variable and extract function can supply functions to determine if they
are relevant to the given range, and if so, to generate their text
edits. source.Analyzers now point to Commands, rather than
SuggestedFixFuncs. The "canExtractVariable" and "canExtractFunction"
functions still need improvements, but I think that can be done in a
follow-up.

Change-Id: I9ec894c5abdbb28505a0f84ad7c76aa50977827a
Reviewed-on: https://go-review.googlesource.com/c/tools/+/244598
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
2020-07-27 19:25:51 +00:00
..
code_lens.go internal/lsp: support refactor.extract through commands 2020-07-27 19:25:51 +00:00
command.go internal/lsp: support refactor.extract through commands 2020-07-27 19:25:51 +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: remove Ignore feature 2020-06-11 22:55:14 +00:00
completion_format.go internal/lsp/source: speed up completion candidate formatting 2020-07-01 04:11:22 +00:00
completion_keywords.go internal/lsp/source: offer loop keyword completions in range stmt 2020-03-12 04:57:24 +00:00
completion_labels.go internal/lsp: use one context throughout completion 2020-04-06 16:51:37 +00:00
completion_literal.go internal/telemetry: renaming to internal/event 2020-04-23 17:20:48 +00:00
completion_snippet.go internal/lsp: merge completion options into source.Options 2020-01-13 20:09:44 +00:00
completion_statements.go internal/lsp/source: offer smart "append()" completions 2020-05-20 22:05:37 +00:00
completion.go internal/lsp: support refactor.extract through commands 2020-07-27 19:25:51 +00:00
deep_completion.go internal/lsp: use one context throughout completion 2020-04-06 16:51:37 +00:00
diagnostics.go internal/lsp: refactor go.mod diagnostics to simplify the API 2020-07-16 22:50:03 +00:00
extract.go internal/lsp: support refactor.extract through commands 2020-07-27 19:25:51 +00:00
folding_range.go internal/lsp: read files eagerly 2020-06-11 22:11:59 +00:00
format_test.go internal/lsp: avoid panic caused by assuming file ends with newline 2020-07-14 19:07:37 +00:00
format.go internal/lsp: log errors for compute fix edits instead of returning 2020-07-17 02:25:49 +00:00
highlight.go internal/lsp/source: support highlight of switch statements 2020-06-19 02:36:21 +00:00
hover.go internal/lsp: fix hover link for embedded fields and methods 2020-07-27 15:46:26 +00:00
identifier.go internal/lsp: fix hover link for embedded fields and methods 2020-07-27 15:46:26 +00:00
implementation.go internal/lsp: fix hover link for embedded fields and methods 2020-07-27 15:46:26 +00:00
options.go internal/lsp: support refactor.extract through commands 2020-07-27 19:25:51 +00:00
references.go internal/event: renaming the main event API functions 2020-04-23 17:21:36 +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: add changeMethods logic to rename check 2020-07-13 19:50:33 +00:00
signature_help.go internal/lsp/source: speed up completion candidate formatting 2020-07-01 04:11:22 +00:00
source_test.go internal/lsp: fix hover for implicit type switch variable declarations 2020-07-24 02:27:22 +00:00
symbols.go internal/lsp: use %w in error wrappers 2020-05-04 14:52:14 +00:00
types_format.go internal/lsp/source: handle nil pointer in newBuiltinSignature 2020-07-15 19:52:07 +00:00
util.go internal/lsp: support refactor.extract through commands 2020-07-27 19:25:51 +00:00
view.go internal/lsp: support refactor.extract through commands 2020-07-27 19:25:51 +00:00
workspace_symbol.go internal/lsp/source: add a new symbolStyle configuration option 2020-06-26 17:13:37 +00:00