From 5ef4ebff2017d7bdfa03f0eccb9960a86c9b94ca Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 22 May 2020 00:28:49 +0200 Subject: Use WorkspaceEdit for ssr --- crates/rust-analyzer/src/caps.rs | 1 + crates/rust-analyzer/src/lsp_ext.rs | 4 ++-- crates/rust-analyzer/src/main_loop/handlers.rs | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) (limited to 'crates') diff --git a/crates/rust-analyzer/src/caps.rs b/crates/rust-analyzer/src/caps.rs index 4c417c270..13af75469 100644 --- a/crates/rust-analyzer/src/caps.rs +++ b/crates/rust-analyzer/src/caps.rs @@ -94,6 +94,7 @@ pub fn server_capabilities() -> ServerCapabilities { ), experimental: Some(json!({ "joinLines": true, + "ssr": true, })), } } diff --git a/crates/rust-analyzer/src/lsp_ext.rs b/crates/rust-analyzer/src/lsp_ext.rs index 1bb1b02ab..0fd60caf4 100644 --- a/crates/rust-analyzer/src/lsp_ext.rs +++ b/crates/rust-analyzer/src/lsp_ext.rs @@ -173,8 +173,8 @@ pub enum Ssr {} impl Request for Ssr { type Params = SsrParams; - type Result = SourceChange; - const METHOD: &'static str = "rust-analyzer/ssr"; + type Result = lsp_types::WorkspaceEdit; + const METHOD: &'static str = "experimental/ssr"; } #[derive(Debug, Deserialize, Serialize)] diff --git a/crates/rust-analyzer/src/main_loop/handlers.rs b/crates/rust-analyzer/src/main_loop/handlers.rs index 121964718..25e660bd5 100644 --- a/crates/rust-analyzer/src/main_loop/handlers.rs +++ b/crates/rust-analyzer/src/main_loop/handlers.rs @@ -986,11 +986,11 @@ pub fn handle_document_highlight( pub fn handle_ssr( world: WorldSnapshot, params: lsp_ext::SsrParams, -) -> Result { +) -> Result { let _p = profile("handle_ssr"); let source_change = world.analysis().structural_search_replace(¶ms.query, params.parse_only)??; - to_proto::source_change(&world, source_change) + to_proto::workspace_edit(&world, source_change) } pub fn publish_diagnostics(world: &WorldSnapshot, file_id: FileId) -> Result { -- cgit v1.2.3