From b9a7b70e52870aa121bd3551abe5ef38d06bf4c5 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Wed, 19 Apr 2023 14:30:23 +0200 Subject: [PATCH] Register unknown buffer on the fly if completions are requested for it --- crates/copilot/src/copilot.rs | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/crates/copilot/src/copilot.rs b/crates/copilot/src/copilot.rs index ebe139c1cf5652de5010c4270b0314869cddde58..71843402a63bd25a0d792be46baa6dfdbc47e5f2 100644 --- a/crates/copilot/src/copilot.rs +++ b/crates/copilot/src/copilot.rs @@ -663,6 +663,7 @@ impl Copilot { >, T: ToPointUtf16, { + self.register_buffer(buffer, cx); let (server, registered_buffer) = match &mut self.server { CopilotServer::Starting { .. } => { return Task::ready(Err(anyhow!("copilot is still starting"))) @@ -681,17 +682,11 @@ impl Copilot { .. } => { if matches!(status, SignInStatus::Authorized { .. }) { - if let Some(registered_buffer) = registered_buffers.get_mut(&buffer.id()) { - if let Err(error) = registered_buffer.report_changes(buffer, &server, cx) { - return Task::ready(Err(error)); - } - - (server.clone(), registered_buffer) - } else { - return Task::ready(Err(anyhow!( - "requested completions for an unregistered buffer" - ))); + let registered_buffer = registered_buffers.get_mut(&buffer.id()).unwrap(); + if let Err(error) = registered_buffer.report_changes(buffer, &server, cx) { + return Task::ready(Err(error)); } + (server.clone(), registered_buffer) } else { return Task::ready(Err(anyhow!("must sign in before using copilot"))); }