From 2ebd684d29203c61ecbb36e2a0475c54008364c9 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Mon, 14 Jul 2025 13:26:56 +0200 Subject: [PATCH] feat: port file type palette to use configurable file types --- src/tui/mode/overlay/file_type_palette.zig | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/tui/mode/overlay/file_type_palette.zig b/src/tui/mode/overlay/file_type_palette.zig index 719abe3..175486e 100644 --- a/src/tui/mode/overlay/file_type_palette.zig +++ b/src/tui/mode/overlay/file_type_palette.zig @@ -2,6 +2,7 @@ const std = @import("std"); const cbor = @import("cbor"); const tp = @import("thespian"); const syntax = @import("syntax"); +const file_type_config = @import("file_type_config"); const Widget = @import("../../Widget.zig"); const tui = @import("../../tui.zig"); @@ -34,18 +35,19 @@ pub fn Variant(comptime command: []const u8, comptime label_: []const u8, allow_ var idx: usize = 0; previous_file_type = blk: { if (tui.get_active_editor()) |editor| - if (editor.syntax) |editor_syntax| - break :blk editor_syntax.file_type.name; + if (editor.file_type) |editor_file_type| + break :blk editor_file_type.name; break :blk null; }; - for (syntax.FileType.file_types) |file_type| { + for (syntax.FileType.static_file_types) |static_file_type| { + const file_type = try file_type_config.get(static_file_type.name) orelse unreachable; idx += 1; (try palette.entries.addOne()).* = .{ - .label = file_type.description, + .label = file_type.description orelse static_file_type.description, .name = file_type.name, - .icon = file_type.icon, - .color = file_type.color, + .icon = file_type.icon orelse static_file_type.icon, + .color = file_type.color orelse static_file_type.color, }; if (previous_file_type) |file_type_name| if (std.mem.eql(u8, file_type.name, file_type_name)) { palette.initial_selected = idx;