mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-16 16:56:09 +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.
|
/// matching this family will be listed.
|
||||||
family: ?[:0]const u8 = null,
|
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
|
/// Font styles to search for. If this is set, then only fonts that
|
||||||
/// match the given styles will be listed.
|
/// match the given styles will be listed.
|
||||||
bold: bool = false,
|
bold: bool = false,
|
||||||
@ -84,6 +87,7 @@ fn runArgs(alloc_gpa: Allocator, argsIter: anytype) !u8 {
|
|||||||
defer disco.deinit();
|
defer disco.deinit();
|
||||||
var disco_it = try disco.discover(.{
|
var disco_it = try disco.discover(.{
|
||||||
.family = config.family,
|
.family = config.family,
|
||||||
|
.style = config.style,
|
||||||
.bold = config.bold,
|
.bold = config.bold,
|
||||||
.italic = config.italic,
|
.italic = config.italic,
|
||||||
});
|
});
|
||||||
|
@ -31,6 +31,12 @@ pub const Descriptor = struct {
|
|||||||
/// fontconfig pattern, such as "Fira Code-14:bold".
|
/// fontconfig pattern, such as "Fira Code-14:bold".
|
||||||
family: ?[:0]const u8 = null,
|
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.
|
/// A codepoint that this font must be able to render.
|
||||||
codepoint: u32 = 0,
|
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
|
// Codepoint support
|
||||||
if (self.codepoint > 0) {
|
if (self.codepoint > 0) {
|
||||||
const cs = try macos.foundation.CharacterSet.createWithCharactersInRange(.{
|
const cs = try macos.foundation.CharacterSet.createWithCharactersInRange(.{
|
||||||
|
Reference in New Issue
Block a user