From b6a9d90609db840b3d6b1487b85ff1cad37156b3 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Mon, 3 Apr 2023 13:30:57 +0200 Subject: [PATCH] Move creation of `GetCompletionsParams` entirely to the background --- crates/copilot/src/copilot.rs | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/crates/copilot/src/copilot.rs b/crates/copilot/src/copilot.rs index d27332cbdeae6646d99a5ac75aea8aea384fce8e..1fb7ee0b5bc830a08f7f89c403a090cb68779b78 100644 --- a/crates/copilot/src/copilot.rs +++ b/crates/copilot/src/copilot.rs @@ -522,6 +522,9 @@ impl Copilot { let language = snapshot.language_at(position); let language_name = language.map(|language| language.name()); let language_name = language_name.as_deref(); + let tab_size = settings.tab_size(language_name); + let hard_tabs = settings.hard_tabs(language_name); + let language_id = id_for_language(language); let path; let relative_path; @@ -537,22 +540,23 @@ impl Copilot { relative_path = PathBuf::new(); } - let params = request::GetCompletionsParams { - doc: request::GetCompletionsDocument { - source: snapshot.text(), - tab_size: settings.tab_size(language_name).into(), - indent_size: 1, - insert_spaces: !settings.hard_tabs(language_name), - uri, - path: path.to_string_lossy().into(), - relative_path: relative_path.to_string_lossy().into(), - language_id: id_for_language(language), - position: point_to_lsp(position), - version: 0, - }, - }; cx.background().spawn(async move { - let result = server.request::(params).await?; + let result = server + .request::(request::GetCompletionsParams { + doc: request::GetCompletionsDocument { + source: snapshot.text(), + tab_size: tab_size.into(), + indent_size: 1, + insert_spaces: !hard_tabs, + uri, + path: path.to_string_lossy().into(), + relative_path: relative_path.to_string_lossy().into(), + language_id, + position: point_to_lsp(position), + version: 0, + }, + }) + .await?; let completions = result .completions .into_iter()