From 48a6fb9e849ef1a4116df89d80dee160607f5000 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Tue, 20 Feb 2024 14:54:19 +0200 Subject: [PATCH] Fix runnables-related hickups (#8058) * never error on absent/empty runnables file * always activate terminal tab on runnable (re)schedule Release Notes: - N/A --- crates/runnable/src/static_source.rs | 2 +- crates/terminal_view/src/terminal_panel.rs | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/crates/runnable/src/static_source.rs b/crates/runnable/src/static_source.rs index 3a274b0a12a1f58f3e46f2ea53beb6e5280bc179..9edd7a1afe78ba2bc4e7c1908ce3cbbde9d62c45 100644 --- a/crates/runnable/src/static_source.rs +++ b/crates/runnable/src/static_source.rs @@ -79,7 +79,7 @@ impl Deserialize<'a> + PartialEq + 'static> TrackedFile { ) -> Model { cx.new_model(move |cx| { cx.spawn(|tracked_file, mut cx| async move { - while let Some(new_contents) = tracker.next().await { + while let Some(new_contents) = tracker.next().await.filter(|s| !s.is_empty()) { let Some(new_contents) = serde_json_lenient::from_str(&new_contents).log_err() else { continue; diff --git a/crates/terminal_view/src/terminal_panel.rs b/crates/terminal_view/src/terminal_panel.rs index aee6e907b65b2447b1b13f79b666e5a98c60d5cb..832132edcce9a70df17eeccc5149173d298b65f3 100644 --- a/crates/terminal_view/src/terminal_panel.rs +++ b/crates/terminal_view/src/terminal_panel.rs @@ -542,6 +542,13 @@ impl TerminalPanel { terminal_to_replace.set_terminal(new_terminal, cx); }); self.activate_terminal_view(terminal_item_index, cx); + let task_workspace = self.workspace.clone(); + cx.spawn(|_, mut cx| async move { + task_workspace + .update(&mut cx, |workspace, cx| workspace.focus_panel::(cx)) + .ok() + }) + .detach(); Some(()) } }