From 90576cf32f7f418fda1403e5d39263885aba1620 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Mon, 14 Feb 2022 17:49:03 +0100 Subject: [PATCH] Request code actions inside of task to avoid spamming the LSP --- crates/project/src/project.rs | 42 +++++++++++++++++------------------ 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/crates/project/src/project.rs b/crates/project/src/project.rs index 4c54bbef6d..df339477aa 100644 --- a/crates/project/src/project.rs +++ b/crates/project/src/project.rs @@ -1511,28 +1511,28 @@ impl Project { return Task::ready(Ok(Default::default())); } - let actions = - lang_server.request::(lsp::CodeActionParams { - text_document: lsp::TextDocumentIdentifier::new( - lsp::Url::from_file_path(buffer_abs_path).unwrap(), - ), - range: lsp::Range::new( - range.start.to_point_utf16(buffer).to_lsp_position(), - range.end.to_point_utf16(buffer).to_lsp_position(), - ), - work_done_progress_params: Default::default(), - partial_result_params: Default::default(), - context: lsp::CodeActionContext { - diagnostics: Default::default(), - only: Some(vec![ - lsp::CodeActionKind::QUICKFIX, - lsp::CodeActionKind::REFACTOR, - lsp::CodeActionKind::REFACTOR_EXTRACT, - ]), - }, - }); + let lsp_range = lsp::Range::new( + range.start.to_point_utf16(buffer).to_lsp_position(), + range.end.to_point_utf16(buffer).to_lsp_position(), + ); cx.foreground().spawn(async move { - Ok(actions + Ok(lang_server + .request::(lsp::CodeActionParams { + text_document: lsp::TextDocumentIdentifier::new( + lsp::Url::from_file_path(buffer_abs_path).unwrap(), + ), + range: lsp_range, + work_done_progress_params: Default::default(), + partial_result_params: Default::default(), + context: lsp::CodeActionContext { + diagnostics: Default::default(), + only: Some(vec![ + lsp::CodeActionKind::QUICKFIX, + lsp::CodeActionKind::REFACTOR, + lsp::CodeActionKind::REFACTOR_EXTRACT, + ]), + }, + }) .await? .unwrap_or_default() .into_iter()