use gpui_kit::{App, SharedString};
pub const JETBRAINS_MONO: &str = "JetBrains Mono";
pub fn bundled_code_fonts() -> Vec<SharedString> {
if cfg!(feature = "jetbrains-mono") {
vec![JETBRAINS_MONO.into()]
} else {
Vec::new()
}
}
pub fn default_code_font() -> Option<SharedString> {
bundled_code_fonts().into_iter().next()
}
pub(crate) fn register(cx: &mut App) {
#[cfg(feature = "jetbrains-mono")]
{
use std::borrow::Cow;
let fonts = vec![
Cow::Borrowed(damascene_fonts_jetbrains_mono::JETBRAINS_MONO_VARIABLE),
Cow::Borrowed(damascene_fonts_jetbrains_mono::JETBRAINS_MONO_VARIABLE_ITALIC),
];
if let Err(error) = cx.text_system().add_fonts(fonts) {
eprintln!("gpui-cn could not register JetBrains Mono: {error}");
}
}
#[cfg(not(feature = "jetbrains-mono"))]
{
let _ = cx;
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn the_default_code_font_is_the_first_bundled_one() {
let bundled = bundled_code_fonts();
assert_eq!(default_code_font(), bundled.first().cloned());
if cfg!(feature = "jetbrains-mono") {
assert_eq!(bundled.first().map(|f| f.as_ref()), Some(JETBRAINS_MONO));
} else {
assert!(bundled.is_empty());
}
}
}