diff options
Diffstat (limited to 'crates/rust-analyzer/src/lsp_utils.rs')
-rw-r--r-- | crates/rust-analyzer/src/lsp_utils.rs | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/crates/rust-analyzer/src/lsp_utils.rs b/crates/rust-analyzer/src/lsp_utils.rs index fd793a17c..99f4998a9 100644 --- a/crates/rust-analyzer/src/lsp_utils.rs +++ b/crates/rust-analyzer/src/lsp_utils.rs | |||
@@ -2,7 +2,6 @@ | |||
2 | use std::{error::Error, ops::Range}; | 2 | use std::{error::Error, ops::Range}; |
3 | 3 | ||
4 | use lsp_server::Notification; | 4 | use lsp_server::Notification; |
5 | use lsp_types::request::Request; | ||
6 | use ra_db::Canceled; | 5 | use ra_db::Canceled; |
7 | use ra_ide::LineIndex; | 6 | use ra_ide::LineIndex; |
8 | use serde::Serialize; | 7 | use serde::Serialize; |
@@ -43,9 +42,9 @@ impl Progress { | |||
43 | impl GlobalState { | 42 | impl GlobalState { |
44 | pub(crate) fn show_message(&mut self, typ: lsp_types::MessageType, message: String) { | 43 | pub(crate) fn show_message(&mut self, typ: lsp_types::MessageType, message: String) { |
45 | let message = message.into(); | 44 | let message = message.into(); |
46 | let params = lsp_types::ShowMessageParams { typ, message }; | 45 | self.send_notification::<lsp_types::notification::ShowMessage>( |
47 | let not = notification_new::<lsp_types::notification::ShowMessage>(params); | 46 | lsp_types::ShowMessageParams { typ, message }, |
48 | self.send(not.into()); | 47 | ) |
49 | } | 48 | } |
50 | 49 | ||
51 | pub(crate) fn report_progress( | 50 | pub(crate) fn report_progress( |
@@ -61,12 +60,10 @@ impl GlobalState { | |||
61 | let token = lsp_types::ProgressToken::String(format!("rustAnalyzer/{}", title)); | 60 | let token = lsp_types::ProgressToken::String(format!("rustAnalyzer/{}", title)); |
62 | let work_done_progress = match state { | 61 | let work_done_progress = match state { |
63 | Progress::Begin => { | 62 | Progress::Begin => { |
64 | let work_done_progress_create = self.req_queue.outgoing.register( | 63 | self.send_request::<lsp_types::request::WorkDoneProgressCreate>( |
65 | lsp_types::request::WorkDoneProgressCreate::METHOD.to_string(), | ||
66 | lsp_types::WorkDoneProgressCreateParams { token: token.clone() }, | 64 | lsp_types::WorkDoneProgressCreateParams { token: token.clone() }, |
67 | |_, _| (), | 65 | |_, _| (), |
68 | ); | 66 | ); |
69 | self.send(work_done_progress_create.into()); | ||
70 | 67 | ||
71 | lsp_types::WorkDoneProgress::Begin(lsp_types::WorkDoneProgressBegin { | 68 | lsp_types::WorkDoneProgress::Begin(lsp_types::WorkDoneProgressBegin { |
72 | title: title.into(), | 69 | title: title.into(), |
@@ -86,12 +83,10 @@ impl GlobalState { | |||
86 | lsp_types::WorkDoneProgress::End(lsp_types::WorkDoneProgressEnd { message }) | 83 | lsp_types::WorkDoneProgress::End(lsp_types::WorkDoneProgressEnd { message }) |
87 | } | 84 | } |
88 | }; | 85 | }; |
89 | let notification = | 86 | self.send_notification::<lsp_types::notification::Progress>(lsp_types::ProgressParams { |
90 | notification_new::<lsp_types::notification::Progress>(lsp_types::ProgressParams { | 87 | token, |
91 | token, | 88 | value: lsp_types::ProgressParamsValue::WorkDone(work_done_progress), |
92 | value: lsp_types::ProgressParamsValue::WorkDone(work_done_progress), | 89 | }); |
93 | }); | ||
94 | self.send(notification.into()); | ||
95 | } | 90 | } |
96 | } | 91 | } |
97 | 92 | ||