diff --git a/crates/project/src/project.rs b/crates/project/src/project.rs index 83aba85bd3..e4858587ad 100644 --- a/crates/project/src/project.rs +++ b/crates/project/src/project.rs @@ -8039,11 +8039,9 @@ fn subscribe_for_copilot_events( copilot, |project, copilot, copilot_event, cx| match copilot_event { copilot::Event::CopilotLanguageServerStarted => { - if let Some((name, copilot_server)) = copilot.read(cx).language_server() { - let new_server_id = copilot_server.server_id(); - if let hash_map::Entry::Vacant(v) = - project.supplementary_language_servers.entry(new_server_id) - { + match copilot.read(cx).language_server() { + Some((name, copilot_server)) => { + let new_server_id = copilot_server.server_id(); let weak_project = cx.weak_handle(); let copilot_log_subscription = copilot_server .on_notification::( @@ -8058,10 +8056,11 @@ fn subscribe_for_copilot_events( } }, ); + project.supplementary_language_servers.insert(new_server_id, (name.clone(), Arc::clone(copilot_server))); project.copilot_log_subscription = Some(copilot_log_subscription); - v.insert((name.clone(), Arc::clone(copilot_server))); cx.emit(Event::LanguageServerAdded(new_server_id)); } + None => debug_panic!("Received Copilot language server started event, but no language server is running"), } } },