Fix runnables-related hickups (#8058)

* never error on absent/empty runnables file
* always activate terminal tab on runnable (re)schedule

Release Notes:

- N/A
This commit is contained in:
Kirill Bulatov 2024-02-20 14:54:19 +02:00 committed by GitHub
parent e9f400a8bd
commit 48a6fb9e84
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 1 deletions

View file

@ -79,7 +79,7 @@ impl<T: for<'a> Deserialize<'a> + PartialEq + 'static> TrackedFile<T> {
) -> Model<Self> {
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;

View file

@ -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::<Self>(cx))
.ok()
})
.detach();
Some(())
}
}