]> git.lizzy.rs Git - rust.git/commitdiff
Advertise support for all the builtin CodeActionKinds
authorkjeremy <kjeremy@gmail.com>
Sun, 26 Apr 2020 22:57:33 +0000 (18:57 -0400)
committerkjeremy <kjeremy@gmail.com>
Fri, 1 May 2020 17:44:32 +0000 (13:44 -0400)
Even thought we don't return all of these we eventually will so might as
well advertise now.

crates/rust-analyzer/src/caps.rs

index e22ab8402ec68a5e68693bcf12a0522346333398..38780726f7b42935b2e9d2be3a7fff1a50af0751 100644 (file)
@@ -3,13 +3,13 @@
 use crate::semantic_tokens;
 
 use lsp_types::{
-    CallHierarchyServerCapability, CodeActionProviderCapability, CodeLensOptions,
-    CompletionOptions, DocumentOnTypeFormattingOptions, FoldingRangeProviderCapability,
-    ImplementationProviderCapability, RenameOptions, RenameProviderCapability, SaveOptions,
-    SelectionRangeProviderCapability, SemanticTokensDocumentProvider, SemanticTokensLegend,
-    SemanticTokensOptions, ServerCapabilities, SignatureHelpOptions, TextDocumentSyncCapability,
-    TextDocumentSyncKind, TextDocumentSyncOptions, TypeDefinitionProviderCapability,
-    WorkDoneProgressOptions,
+    CallHierarchyServerCapability, CodeActionOptions, CodeActionProviderCapability,
+    CodeLensOptions, CompletionOptions, DocumentOnTypeFormattingOptions,
+    FoldingRangeProviderCapability, ImplementationProviderCapability, RenameOptions,
+    RenameProviderCapability, SaveOptions, SelectionRangeProviderCapability,
+    SemanticTokensDocumentProvider, SemanticTokensLegend, SemanticTokensOptions,
+    ServerCapabilities, SignatureHelpOptions, TextDocumentSyncCapability, TextDocumentSyncKind,
+    TextDocumentSyncOptions, TypeDefinitionProviderCapability, WorkDoneProgressOptions,
 };
 
 pub fn server_capabilities() -> ServerCapabilities {
@@ -40,7 +40,19 @@ pub fn server_capabilities() -> ServerCapabilities {
         document_highlight_provider: Some(true),
         document_symbol_provider: Some(true),
         workspace_symbol_provider: Some(true),
-        code_action_provider: Some(CodeActionProviderCapability::Simple(true)),
+        code_action_provider: Some(CodeActionProviderCapability::Options(CodeActionOptions {
+            code_action_kinds: Some(vec![
+                "".to_string(),
+                lsp_types::code_action_kind::QUICKFIX.to_string(),
+                lsp_types::code_action_kind::REFACTOR.to_string(),
+                lsp_types::code_action_kind::REFACTOR_EXTRACT.to_string(),
+                lsp_types::code_action_kind::REFACTOR_INLINE.to_string(),
+                lsp_types::code_action_kind::REFACTOR_REWRITE.to_string(),
+                lsp_types::code_action_kind::SOURCE.to_string(),
+                lsp_types::code_action_kind::SOURCE_ORGANIZE_IMPORTS.to_string(),
+            ]),
+            work_done_progress_options: Default::default(),
+        })),
         code_lens_provider: Some(CodeLensOptions { resolve_provider: Some(true) }),
         document_formatting_provider: Some(true),
         document_range_formatting_provider: None,