Properly re-add Copilot LSP server

This commit is contained in:
Kirill Bulatov 2023-09-20 12:39:08 +03:00
parent a2ac5ae478
commit 1c53b0a1c0

View file

@ -8039,11 +8039,9 @@ fn subscribe_for_copilot_events(
copilot, copilot,
|project, copilot, copilot_event, cx| match copilot_event { |project, copilot, copilot_event, cx| match copilot_event {
copilot::Event::CopilotLanguageServerStarted => { copilot::Event::CopilotLanguageServerStarted => {
if let Some((name, copilot_server)) = copilot.read(cx).language_server() { match copilot.read(cx).language_server() {
Some((name, copilot_server)) => {
let new_server_id = copilot_server.server_id(); let new_server_id = copilot_server.server_id();
if let hash_map::Entry::Vacant(v) =
project.supplementary_language_servers.entry(new_server_id)
{
let weak_project = cx.weak_handle(); let weak_project = cx.weak_handle();
let copilot_log_subscription = copilot_server let copilot_log_subscription = copilot_server
.on_notification::<copilot::request::LogMessage, _>( .on_notification::<copilot::request::LogMessage, _>(
@ -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); project.copilot_log_subscription = Some(copilot_log_subscription);
v.insert((name.clone(), Arc::clone(copilot_server)));
cx.emit(Event::LanguageServerAdded(new_server_id)); cx.emit(Event::LanguageServerAdded(new_server_id));
} }
None => debug_panic!("Received Copilot language server started event, but no language server is running"),
} }
} }
}, },