@@ -623,7 +623,10 @@ pub fn hover_markdown_style(window: &Window, cx: &App) -> MarkdownStyle {
});
MarkdownStyle {
base_text_style,
- code_block: StyleRefinement::default().my(rems(1.)).font_buffer(cx),
+ code_block: StyleRefinement::default()
+ .my(rems(1.))
+ .font_buffer(cx)
+ .font_features(buffer_font_features.clone()),
inline_code: TextStyleRefinement {
background_color: Some(cx.theme().colors().background),
font_family: Some(buffer_font_family),
@@ -1,8 +1,9 @@
use crate::{
self as gpui, AbsoluteLength, AlignContent, AlignItems, BorderStyle, CursorStyle,
- DefiniteLength, Display, Fill, FlexDirection, FlexWrap, Font, FontStyle, FontWeight,
- GridPlacement, Hsla, JustifyContent, Length, SharedString, StrikethroughStyle, StyleRefinement,
- TextAlign, TextOverflow, TextStyleRefinement, UnderlineStyle, WhiteSpace, px, relative, rems,
+ DefiniteLength, Display, Fill, FlexDirection, FlexWrap, Font, FontFeatures, FontStyle,
+ FontWeight, GridPlacement, Hsla, JustifyContent, Length, SharedString, StrikethroughStyle,
+ StyleRefinement, TextAlign, TextOverflow, TextStyleRefinement, UnderlineStyle, WhiteSpace, px,
+ relative, rems,
};
pub use gpui_macros::{
border_style_methods, box_shadow_style_methods, cursor_style_methods, margin_style_methods,
@@ -630,6 +631,14 @@ pub trait Styled: Sized {
self
}
+ /// Sets the font features of this element and its children.
+ fn font_features(mut self, features: FontFeatures) -> Self {
+ self.text_style()
+ .get_or_insert_with(Default::default)
+ .font_features = Some(features);
+ self
+ }
+
/// Sets the font of this element and its children.
fn font(mut self, font: Font) -> Self {
let Font {
@@ -75,8 +75,10 @@ impl RenderContext {
let settings = ThemeSettings::get_global(cx);
let buffer_font_family = settings.buffer_font.family.clone();
+ let buffer_font_features = settings.buffer_font.features.clone();
let mut buffer_text_style = window.text_style();
buffer_text_style.font_family = buffer_font_family.clone();
+ buffer_text_style.font_features = buffer_font_features;
buffer_text_style.font_size = AbsoluteLength::from(settings.buffer_font_size(cx));
RenderContext {
@@ -631,8 +633,14 @@ fn render_markdown_code_block(
.tooltip(Tooltip::text("Copy code block"))
.visible_on_hover("markdown-block");
+ let font = gpui::Font {
+ family: cx.buffer_font_family.clone(),
+ features: cx.buffer_text_style.font_features.clone(),
+ ..Default::default()
+ };
+
cx.with_common_p(div())
- .font_family(cx.buffer_font_family.clone())
+ .font(font)
.px_3()
.py_3()
.bg(cx.code_block_background_color)