mirror of
https://github.com/zed-industries/zed.git
synced 2024-12-26 10:40:54 +00:00
Allow setting font features on the terminal as well
This commit is contained in:
parent
b2c733baab
commit
7d13b00914
5 changed files with 20 additions and 8 deletions
|
@ -6769,6 +6769,7 @@ fn build_style(
|
|||
}
|
||||
} else {
|
||||
let font_family_id = settings.buffer_font_family;
|
||||
let font_features = settings.buffer_font_features;
|
||||
let font_family_name = cx.font_cache().family_name(font_family_id).unwrap();
|
||||
let font_properties = Default::default();
|
||||
let font_id = font_cache
|
||||
|
@ -6779,6 +6780,7 @@ fn build_style(
|
|||
text: TextStyle {
|
||||
color: settings.theme.editor.text_color,
|
||||
font_family_name,
|
||||
font_features,
|
||||
font_family_id,
|
||||
font_id,
|
||||
font_size,
|
||||
|
|
|
@ -30,6 +30,7 @@ pub struct Features {
|
|||
pub struct TextStyle {
|
||||
pub color: Color,
|
||||
pub font_family_name: Arc<str>,
|
||||
pub font_features: Features,
|
||||
pub font_family_id: FamilyId,
|
||||
pub font_id: FontId,
|
||||
pub font_size: f32,
|
||||
|
@ -124,6 +125,7 @@ impl TextStyle {
|
|||
Ok(Self {
|
||||
color,
|
||||
font_family_name,
|
||||
font_features,
|
||||
font_family_id,
|
||||
font_id,
|
||||
font_size,
|
||||
|
@ -270,6 +272,7 @@ impl Default for TextStyle {
|
|||
Self {
|
||||
color: Default::default(),
|
||||
font_family_name,
|
||||
font_features: Default::default(),
|
||||
font_family_id,
|
||||
font_id,
|
||||
font_size: 14.,
|
||||
|
@ -351,6 +354,7 @@ impl ToJson for TextStyle {
|
|||
json!({
|
||||
"color": self.color.to_json(),
|
||||
"font_family": self.font_family_name.as_ref(),
|
||||
"font_features": serde_json::to_value(&self.font_features).unwrap(),
|
||||
"font_properties": self.font_properties.to_json(),
|
||||
})
|
||||
}
|
||||
|
|
|
@ -227,6 +227,7 @@ pub struct TerminalSettings {
|
|||
pub working_directory: Option<WorkingDirectory>,
|
||||
pub font_size: Option<f32>,
|
||||
pub font_family: Option<String>,
|
||||
pub font_features: Option<fonts::Features>,
|
||||
pub env: Option<HashMap<String, String>>,
|
||||
pub blinking: Option<TerminalBlink>,
|
||||
pub alternate_scroll: Option<AlternateScroll>,
|
||||
|
|
|
@ -505,18 +505,21 @@ impl TerminalElement {
|
|||
|
||||
///Configures a text style from the current settings.
|
||||
pub fn make_text_style(font_cache: &FontCache, settings: &Settings) -> TextStyle {
|
||||
// TODO allow font features
|
||||
// Pull the font family from settings properly overriding
|
||||
let family_id = settings
|
||||
let font_family_name = settings
|
||||
.terminal_overrides
|
||||
.font_family
|
||||
.as_ref()
|
||||
.or(settings.terminal_defaults.font_family.as_ref())
|
||||
.and_then(|family_name| {
|
||||
font_cache
|
||||
.load_family(&[family_name], Default::default())
|
||||
.log_err()
|
||||
})
|
||||
.unwrap_or(&settings.buffer_font_family_name);
|
||||
let font_features = settings
|
||||
.terminal_overrides
|
||||
.font_features
|
||||
.or(settings.terminal_defaults.font_features)
|
||||
.unwrap_or(settings.buffer_font_features);
|
||||
|
||||
let family_id = font_cache
|
||||
.load_family(&[font_family_name], font_features)
|
||||
.log_err()
|
||||
.unwrap_or(settings.buffer_font_family);
|
||||
|
||||
let font_size = settings
|
||||
|
@ -533,6 +536,7 @@ impl TerminalElement {
|
|||
color: settings.theme.editor.text_color,
|
||||
font_family_id: family_id,
|
||||
font_family_name: font_cache.family_name(family_id).unwrap(),
|
||||
font_features,
|
||||
font_id,
|
||||
font_size,
|
||||
font_properties: Default::default(),
|
||||
|
|
|
@ -243,6 +243,7 @@ impl ThemeTestbench {
|
|||
color: style.foreground,
|
||||
font_family_id: family_id,
|
||||
font_family_name: font_cache.family_name(family_id).unwrap(),
|
||||
font_features: settings.buffer_font_features,
|
||||
font_id,
|
||||
font_size,
|
||||
font_properties: Default::default(),
|
||||
|
|
Loading…
Reference in a new issue