Feature/fallback fonts (#15306)
Supersedes https://github.com/zed-industries/zed/pull/12090 fixes #5180 fixes #5055 See original PR for an example of the feature at work. This PR changes the settings interface to be backwards compatible, and adds the `ui_font_fallbacks`, `buffer_font_fallbacks`, and `terminal.font_fallbacks` settings. Release Notes: - Added support for font fallbacks via three new settings: `ui_font_fallbacks`, `buffer_font_fallbacks`, and `terminal.font_fallbacks`.(#5180, #5055). --------- Co-authored-by: Junkui Zhang <364772080@qq.com>
This commit is contained in:
parent
3e31955b7f
commit
a1bd7a1297
30 changed files with 444 additions and 136 deletions
21
crates/gpui/src/text_system/font_fallbacks.rs
Normal file
21
crates/gpui/src/text_system/font_fallbacks.rs
Normal file
|
@ -0,0 +1,21 @@
|
|||
use std::sync::Arc;
|
||||
|
||||
use schemars::JsonSchema;
|
||||
use serde_derive::{Deserialize, Serialize};
|
||||
|
||||
/// The fallback fonts that can be configured for a given font.
|
||||
/// Fallback fonts family names are stored here.
|
||||
#[derive(Default, Clone, Eq, PartialEq, Hash, Debug, Deserialize, Serialize, JsonSchema)]
|
||||
pub struct FontFallbacks(pub Arc<Vec<String>>);
|
||||
|
||||
impl FontFallbacks {
|
||||
/// Get the fallback fonts family names
|
||||
pub fn fallback_list(&self) -> &[String] {
|
||||
&self.0.as_slice()
|
||||
}
|
||||
|
||||
/// Create a font fallback from a list of strings
|
||||
pub fn from_fonts(fonts: Vec<String>) -> Self {
|
||||
FontFallbacks(Arc::new(fonts))
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue