mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-16 08:46:08 +03:00
font/core-text: discovery supports style search
This commit is contained in:
@ -14,6 +14,9 @@ pub const Config = struct {
|
||||
/// matching this family will be listed.
|
||||
family: ?[:0]const u8 = null,
|
||||
|
||||
/// The style name to search for.
|
||||
style: ?[:0]const u8 = null,
|
||||
|
||||
/// Font styles to search for. If this is set, then only fonts that
|
||||
/// match the given styles will be listed.
|
||||
bold: bool = false,
|
||||
@ -84,6 +87,7 @@ fn runArgs(alloc_gpa: Allocator, argsIter: anytype) !u8 {
|
||||
defer disco.deinit();
|
||||
var disco_it = try disco.discover(.{
|
||||
.family = config.family,
|
||||
.style = config.style,
|
||||
.bold = config.bold,
|
||||
.italic = config.italic,
|
||||
});
|
||||
|
@ -31,6 +31,12 @@ pub const Descriptor = struct {
|
||||
/// fontconfig pattern, such as "Fira Code-14:bold".
|
||||
family: ?[:0]const u8 = null,
|
||||
|
||||
/// Specific font style to search for. This will filter the style
|
||||
/// string the font advertises. The "bold/italic" booleans later in this
|
||||
/// struct filter by the style trait the font has, not the string, so
|
||||
/// these can be used in conjunction or not.
|
||||
style: ?[:0]const u8 = null,
|
||||
|
||||
/// A codepoint that this font must be able to render.
|
||||
codepoint: u32 = 0,
|
||||
|
||||
@ -99,6 +105,16 @@ pub const Descriptor = struct {
|
||||
);
|
||||
}
|
||||
|
||||
// Style
|
||||
if (self.style) |style_bytes| {
|
||||
const style = try macos.foundation.String.createWithBytes(style_bytes, .utf8, false);
|
||||
defer style.release();
|
||||
attrs.setValue(
|
||||
macos.text.FontAttribute.style_name.key(),
|
||||
style,
|
||||
);
|
||||
}
|
||||
|
||||
// Codepoint support
|
||||
if (self.codepoint > 0) {
|
||||
const cs = try macos.foundation.CharacterSet.createWithCharactersInRange(.{
|
||||
|
Reference in New Issue
Block a user