Shutdown copilot server when quitting zed

This commit is contained in:
Max Brunsfeld 2023-04-27 14:39:00 -07:00
parent 7258db7a4e
commit 1533c17cd7

View File

@ -24,6 +24,7 @@ use std::{
mem,
ops::Range,
path::{Path, PathBuf},
pin::Pin,
sync::Arc,
};
use util::{
@ -271,6 +272,20 @@ pub struct Copilot {
impl Entity for Copilot {
type Event = ();
fn app_will_quit(
&mut self,
_: &mut AppContext,
) -> Option<Pin<Box<dyn 'static + Future<Output = ()>>>> {
match mem::replace(&mut self.server, CopilotServer::Disabled) {
CopilotServer::Running(server) => Some(Box::pin(async move {
if let Some(shutdown) = server.lsp.shutdown() {
shutdown.await;
}
})),
_ => None,
}
}
}
impl Copilot {