From c54d6aff6c8dedce1f312f159df1bec3f8728e96 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Tue, 20 Feb 2024 15:02:35 +0200 Subject: [PATCH] Properly ignore missing/empty runnables config --- crates/runnable/src/static_source.rs | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/crates/runnable/src/static_source.rs b/crates/runnable/src/static_source.rs index 9edd7a1afe..0d249918c7 100644 --- a/crates/runnable/src/static_source.rs +++ b/crates/runnable/src/static_source.rs @@ -79,17 +79,20 @@ 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.filter(|s| !s.is_empty()) { - let Some(new_contents) = serde_json_lenient::from_str(&new_contents).log_err() - else { - continue; - }; - tracked_file.update(&mut cx, |tracked_file: &mut TrackedFile, cx| { - if tracked_file.parsed_contents != new_contents { - tracked_file.parsed_contents = new_contents; - cx.notify(); + while let Some(new_contents) = tracker.next().await { + if !new_contents.trim().is_empty() { + let Some(new_contents) = + serde_json_lenient::from_str(&new_contents).log_err() + else { + continue; }; - })?; + tracked_file.update(&mut cx, |tracked_file: &mut TrackedFile, cx| { + if tracked_file.parsed_contents != new_contents { + tracked_file.parsed_contents = new_contents; + cx.notify(); + }; + })?; + } } anyhow::Ok(()) })