summaryrefslogtreecommitdiff
path: root/cli/lsp/capabilities.rs
diff options
context:
space:
mode:
authorJean Pierre <jeanp413@hotmail.com>2021-08-05 20:46:32 -0500
committerGitHub <noreply@github.com>2021-08-06 11:46:32 +1000
commit728d205d9d2551a356a022b6b083bcdcf081f3bf (patch)
treec0823fef3a96ed164379c5297d521fce9b2628d8 /cli/lsp/capabilities.rs
parent3f0cf9619fce71a8898c495501df4bdb0e07e735 (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.rs11
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(),
})