Allow setting font features on `TextStyle`

Antonio Scandurra created

Change summary

crates/gpui/src/fonts.rs           | 4 +++-
styles/src/styleTree/components.ts | 7 ++++++-
2 files changed, 9 insertions(+), 2 deletions(-)

Detailed changes

crates/gpui/src/fonts.rs 🔗

@@ -78,6 +78,8 @@ thread_local! {
 struct TextStyleJson {
     color: Color,
     family: String,
+    #[serde(default)]
+    features: Features,
     weight: Option<WeightJson>,
     size: f32,
     #[serde(default)]
@@ -184,7 +186,7 @@ impl TextStyle {
                     json.family,
                     json.size,
                     font_properties,
-                    Default::default(),
+                    json.features,
                     underline_from_json(json.underline),
                     json.color,
                     font_cache,

styles/src/styleTree/components.ts 🔗

@@ -97,7 +97,12 @@ export interface TextProperties {
     size?: keyof typeof fontSizes
     weight?: FontWeight
     underline?: boolean
-    color?: string
+    color?: string,
+    features?: TextFeatures,
+}
+
+interface TextFeatures {
+    calt?: boolean
 }
 
 export function text(