Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--helix-term/src/commands.rs16
1 files changed, 15 insertions, 1 deletions
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs
index 021b927c..9b614067 100644
--- a/helix-term/src/commands.rs
+++ b/helix-term/src/commands.rs
@@ -142,6 +142,17 @@ impl<'a> Context<'a> {
pub fn count(&self) -> usize {
self.count.map_or(1, |v| v.get())
}
+
+ /// Waits on all pending jobs, and then tries to flush all pending write
+ /// operations for all documents.
+ pub fn block_try_flush_writes(&mut self) -> anyhow::Result<()> {
+ compositor::Context {
+ editor: self.editor,
+ jobs: self.jobs,
+ scroll: None,
+ }
+ .block_try_flush_writes()
+ }
}
#[inline]
@@ -5828,7 +5839,10 @@ fn shell_prompt(cx: &mut Context, prompt: Cow<'static, str>, behavior: ShellBeha
fn suspend(_cx: &mut Context) {
#[cfg(not(windows))]
- signal_hook::low_level::raise(signal_hook::consts::signal::SIGTSTP).unwrap();
+ {
+ _cx.block_try_flush_writes().ok();
+ signal_hook::low_level::raise(signal_hook::consts::signal::SIGTSTP).unwrap();
+ }
}
fn add_newline_above(cx: &mut Context) {