From d0b15ed9408bf3b7d67eda63d4273b928368724b Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 22 Sep 2023 15:27:42 -0400 Subject: [PATCH] Report which requested font families are not present on the system (#3006) This PR improves the error message when `FontCache.load_family` attempts to load a font that is not present on the system. I ran into this while trying to run the `storybook` for the first time. The error message indicated that a font family was not found, but did not provide any information as to which font family was being loaded. ### Before ``` Compiling storybook v0.1.0 (/Users/maxdeviant/projects/zed/crates/storybook) Finished dev [unoptimized + debuginfo] target(s) in 8.52s Running `/Users/maxdeviant/projects/zed/target/debug/storybook` thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: could not find a non-empty font family matching one of the given names', crates/theme/src/theme_settings.rs:132:18 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace libc++abi: terminating due to uncaught foreign exception fish: Job 1, 'cargo run' terminated by signal SIGABRT (Abort) ``` ### After ``` Compiling storybook v0.1.0 (/Users/maxdeviant/projects/zed/crates/storybook) Finished dev [unoptimized + debuginfo] target(s) in 7.90s Running `/Users/maxdeviant/projects/zed/target/debug/storybook` thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: could not find a non-empty font family matching one of the given names: `Zed Mono`', crates/theme/src/theme_settings.rs:132:18 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace libc++abi: terminating due to uncaught foreign exception fish: Job 1, 'cargo run' terminated by signal SIGABRT (Abort) ``` Release Notes: - N/A --- crates/gpui/src/font_cache.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/crates/gpui/src/font_cache.rs b/crates/gpui/src/font_cache.rs index 4f0d4fd461..b2dc79c87b 100644 --- a/crates/gpui/src/font_cache.rs +++ b/crates/gpui/src/font_cache.rs @@ -98,7 +98,12 @@ impl FontCache { } Err(anyhow!( - "could not find a non-empty font family matching one of the given names" + "could not find a non-empty font family matching one of the given names: {}", + names + .iter() + .map(|name| format!("`{name}`")) + .collect::>() + .join(", ") )) }