diff --git a/zed/src/theme/resolution.rs b/zed/src/theme/resolution.rs index a37726023008e3f6cd6a434023654ecf08f4fd64..054ece1ff2cb231c57b16c088dc1afbee9ec877d 100644 --- a/zed/src/theme/resolution.rs +++ b/zed/src/theme/resolution.rs @@ -291,6 +291,8 @@ impl Tree { if let Some(base) = root.get(base)? { if base.is_resolved() { resolved_base = Some(base); + } else { + made_progress |= base.resolve_subtree(root, unresolved)?; } } } @@ -409,19 +411,21 @@ mod test { assert_eq!( resolve_references(json).unwrap(), serde_json::json!({ - "e": { - "f": "1", - "x": "1" - }, - "a": { - "x": "1" - }, - "b": { - "c": { - "x": "1" - }, - "d": "1" - }}) + "a": { + "x": "1" + }, + "b": { + "c": { + "x": "1" + }, + "d": "1" + }, + "e": { + "extends": "$a", + "f": "1", + "x": "1" + }, + }) ) } diff --git a/zed/src/theme/theme_registry.rs b/zed/src/theme/theme_registry.rs index 64770aedbe51b5d889752502636ada8b3aba2666..c5cf8f2fcbd856a7e0a5419f5337e8c198aaca59 100644 --- a/zed/src/theme/theme_registry.rs +++ b/zed/src/theme/theme_registry.rs @@ -183,11 +183,6 @@ mod tests { let registry = ThemeRegistry::new(assets, cx.font_cache().clone()); let theme_data = registry.load("light", true).unwrap(); - println!( - "{}", - serde_json::to_string_pretty(theme_data.as_ref()).unwrap() - ); - assert_eq!( theme_data.as_ref(), &serde_json::json!({