From 32b5be45c4c001902fc8ff226d2e790e462148ed Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Wed, 8 Apr 2026 11:19:16 +0200 Subject: [PATCH] fix: add serialization of ansi_palette --- src/compile.zig | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/compile.zig b/src/compile.zig index 8c78877..7f4873e 100644 --- a/src/compile.zig +++ b/src/compile.zig @@ -1185,6 +1185,13 @@ fn write_field_Color(writer: *std.Io.Writer, name: []const u8, value: Color) !vo }); } +fn write_field_ansi_palette(writer: *std.Io.Writer, name: []const u8, value: [16][3]u8) !void { + try writer.print(" .@\"{s}\" = .{{\n", .{name}); + for (value) |rgb| + try writer.print(" .{{ 0x{x:0>2}, 0x{x:0>2}, 0x{x:0>2} }},\n", .{ rgb[0], rgb[1], rgb[2] }); + try writer.print(" }},\n", .{}); +} + fn write_field_token_array(writer: *std.Io.Writer, name: []const u8, values: Tokens) !void { _ = try writer.print(" .@\"{s}\" = &[_]theme.Token{{ \n", .{name}); for (values) |value| { @@ -1200,6 +1207,8 @@ fn write_field(writer: *std.Io.Writer, name: []const u8, value: anytype) !void { write_field_Style(writer, name, value) else if (@TypeOf(value) == Color) write_field_Color(writer, name, value) + else if (@TypeOf(value) == [16][3]u8) + write_field_ansi_palette(writer, name, value) else if (@TypeOf(value) == Tokens) write_field_token_array(writer, name, value) else