diff options
author | Jean Pierre <jeanp413@hotmail.com> | 2021-08-05 20:46:32 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-06 11:46:32 +1000 |
commit | 728d205d9d2551a356a022b6b083bcdcf081f3bf (patch) | |
tree | c0823fef3a96ed164379c5297d521fce9b2628d8 /cli/lsp/capabilities.rs | |
parent | 3f0cf9619fce71a8898c495501df4bdb0e07e735 (diff) |
feat(lsp): implement refactoring code actions (#11555)
Closes: denoland/vscode_deno#433
Diffstat (limited to 'cli/lsp/capabilities.rs')
-rw-r--r-- | cli/lsp/capabilities.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/cli/lsp/capabilities.rs b/cli/lsp/capabilities.rs index 89400d108..a664c296d 100644 --- a/cli/lsp/capabilities.rs +++ b/cli/lsp/capabilities.rs @@ -30,6 +30,7 @@ use lspower::lsp::WorkDoneProgressOptions; use lspower::lsp::WorkspaceFoldersServerCapabilities; use lspower::lsp::WorkspaceServerCapabilities; +use super::refactor::ALL_KNOWN_REFACTOR_ACTION_KINDS; use super::semantic_tokens::get_legend; fn code_action_capabilities( @@ -41,8 +42,16 @@ fn code_action_capabilities( .and_then(|it| it.code_action.as_ref()) .and_then(|it| it.code_action_literal_support.as_ref()) .map_or(CodeActionProviderCapability::Simple(true), |_| { + let mut code_action_kinds = + vec![CodeActionKind::QUICKFIX, CodeActionKind::REFACTOR]; + code_action_kinds.extend( + ALL_KNOWN_REFACTOR_ACTION_KINDS + .iter() + .map(|action| action.kind.clone()), + ); + CodeActionProviderCapability::Options(CodeActionOptions { - code_action_kinds: Some(vec![CodeActionKind::QUICKFIX]), + code_action_kinds: Some(code_action_kinds), resolve_provider: Some(true), work_done_progress_options: Default::default(), }) |