mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-08-02 14:57:31 +03:00
font: add test for fl lig
This commit is contained in:
BIN
src/font/res/CodeNewRoman-Regular.otf
Normal file
BIN
src/font/res/CodeNewRoman-Regular.otf
Normal file
Binary file not shown.
@ -913,6 +913,37 @@ test "shape monaspace ligs" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This font has an undesirable "fl" lig but we want to
|
||||||
|
// ensure we get it so that we can test for it.
|
||||||
|
test "shape fl lig" {
|
||||||
|
const testing = std.testing;
|
||||||
|
const alloc = testing.allocator;
|
||||||
|
|
||||||
|
var testdata = try testShaperWithFont(alloc, .code_new_roman);
|
||||||
|
defer testdata.deinit();
|
||||||
|
|
||||||
|
// Make a screen with some data
|
||||||
|
var screen = try terminal.Screen.init(alloc, 10, 3, 0);
|
||||||
|
defer screen.deinit();
|
||||||
|
try screen.testWriteString("fl");
|
||||||
|
|
||||||
|
// Get our run iterator
|
||||||
|
var shaper = &testdata.shaper;
|
||||||
|
var it = shaper.runIterator(
|
||||||
|
testdata.grid,
|
||||||
|
&screen,
|
||||||
|
screen.pages.pin(.{ .screen = .{ .y = 0 } }).?,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
);
|
||||||
|
const run = (try it.next(alloc)).?;
|
||||||
|
try testing.expect((try it.next(alloc)) == null);
|
||||||
|
const cells = try shaper.shape(run);
|
||||||
|
try testing.expectEqual(@as(usize, 2), cells.len);
|
||||||
|
try testing.expect(cells[0].glyph_index != null);
|
||||||
|
try testing.expect(cells[1].glyph_index == null);
|
||||||
|
}
|
||||||
|
|
||||||
// https://github.com/mitchellh/ghostty/issues/1708
|
// https://github.com/mitchellh/ghostty/issues/1708
|
||||||
test "shape left-replaced lig in last run" {
|
test "shape left-replaced lig in last run" {
|
||||||
const testing = std.testing;
|
const testing = std.testing;
|
||||||
@ -1697,8 +1728,9 @@ const TestShaper = struct {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const TestFont = enum {
|
const TestFont = enum {
|
||||||
inconsolata,
|
code_new_roman,
|
||||||
geist_mono,
|
geist_mono,
|
||||||
|
inconsolata,
|
||||||
jetbrains_mono,
|
jetbrains_mono,
|
||||||
monaspace_neon,
|
monaspace_neon,
|
||||||
nerd_font,
|
nerd_font,
|
||||||
@ -1713,6 +1745,7 @@ fn testShaperWithFont(alloc: Allocator, font_req: TestFont) !TestShaper {
|
|||||||
const testEmoji = @import("../test.zig").fontEmoji;
|
const testEmoji = @import("../test.zig").fontEmoji;
|
||||||
const testEmojiText = @import("../test.zig").fontEmojiText;
|
const testEmojiText = @import("../test.zig").fontEmojiText;
|
||||||
const testFont = switch (font_req) {
|
const testFont = switch (font_req) {
|
||||||
|
.code_new_roman => @import("../test.zig").fontCodeNewRoman,
|
||||||
.inconsolata => @import("../test.zig").fontRegular,
|
.inconsolata => @import("../test.zig").fontRegular,
|
||||||
.geist_mono => @import("../test.zig").fontGeistMono,
|
.geist_mono => @import("../test.zig").fontGeistMono,
|
||||||
.jetbrains_mono => @import("../test.zig").fontJetBrainsMono,
|
.jetbrains_mono => @import("../test.zig").fontJetBrainsMono,
|
||||||
|
@ -16,6 +16,7 @@ pub const fontVariable = @embedFile("res/Lilex-VF.ttf");
|
|||||||
pub const fontNerdFont = @embedFile("res/JetBrainsMonoNerdFont-Regular.ttf");
|
pub const fontNerdFont = @embedFile("res/JetBrainsMonoNerdFont-Regular.ttf");
|
||||||
|
|
||||||
/// Specific font families below:
|
/// Specific font families below:
|
||||||
|
pub const fontCodeNewRoman = @embedFile("res/CodeNewRoman-Regular.otf");
|
||||||
pub const fontGeistMono = @embedFile("res/GeistMono-Regular.ttf");
|
pub const fontGeistMono = @embedFile("res/GeistMono-Regular.ttf");
|
||||||
pub const fontJetBrainsMono = @embedFile("res/JetBrainsMonoNoNF-Regular.ttf");
|
pub const fontJetBrainsMono = @embedFile("res/JetBrainsMonoNoNF-Regular.ttf");
|
||||||
pub const fontJuliaMono = @embedFile("res/JuliaMono-Regular.ttf");
|
pub const fontJuliaMono = @embedFile("res/JuliaMono-Regular.ttf");
|
||||||
|
Reference in New Issue
Block a user