aboutsummaryrefslogtreecommitdiff
path: root/helix-term
diff options
context:
space:
mode:
Diffstat (limited to 'helix-term')
-rw-r--r--helix-term/src/application.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/helix-term/src/application.rs b/helix-term/src/application.rs
index aa2ce884..1f02ac4f 100644
--- a/helix-term/src/application.rs
+++ b/helix-term/src/application.rs
@@ -23,7 +23,7 @@ use crossterm::{
use tui::layout::Rect;
-use futures_util::stream::FuturesUnordered;
+use futures_util::{future, stream::FuturesUnordered};
type BoxFuture<T> = Pin<Box<dyn Future<Output = T> + Send>>;
pub type LspCallback =
@@ -406,6 +406,17 @@ impl Application {
self.event_loop().await;
+ tokio::time::timeout(
+ Duration::from_millis(500),
+ future::join_all(
+ self.editor
+ .language_servers
+ .iter_clients()
+ .map(|client| client.force_shutdown()),
+ ),
+ )
+ .await;
+
// reset cursor shape
write!(stdout, "\x1B[2 q");