feat: port file type palette to use configurable file types
This commit is contained in:
parent
53c9523617
commit
2ebd684d29
1 changed files with 8 additions and 6 deletions
|
@ -2,6 +2,7 @@ const std = @import("std");
|
||||||
const cbor = @import("cbor");
|
const cbor = @import("cbor");
|
||||||
const tp = @import("thespian");
|
const tp = @import("thespian");
|
||||||
const syntax = @import("syntax");
|
const syntax = @import("syntax");
|
||||||
|
const file_type_config = @import("file_type_config");
|
||||||
|
|
||||||
const Widget = @import("../../Widget.zig");
|
const Widget = @import("../../Widget.zig");
|
||||||
const tui = @import("../../tui.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;
|
var idx: usize = 0;
|
||||||
previous_file_type = blk: {
|
previous_file_type = blk: {
|
||||||
if (tui.get_active_editor()) |editor|
|
if (tui.get_active_editor()) |editor|
|
||||||
if (editor.syntax) |editor_syntax|
|
if (editor.file_type) |editor_file_type|
|
||||||
break :blk editor_syntax.file_type.name;
|
break :blk editor_file_type.name;
|
||||||
break :blk null;
|
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;
|
idx += 1;
|
||||||
(try palette.entries.addOne()).* = .{
|
(try palette.entries.addOne()).* = .{
|
||||||
.label = file_type.description,
|
.label = file_type.description orelse static_file_type.description,
|
||||||
.name = file_type.name,
|
.name = file_type.name,
|
||||||
.icon = file_type.icon,
|
.icon = file_type.icon orelse static_file_type.icon,
|
||||||
.color = file_type.color,
|
.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)) {
|
if (previous_file_type) |file_type_name| if (std.mem.eql(u8, file_type.name, file_type_name)) {
|
||||||
palette.initial_selected = idx;
|
palette.initial_selected = idx;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue