refactor: move digit styles to fonts.zig

This commit is contained in:
CJ van den Berg 2025-02-05 22:49:50 +01:00
parent 8964a361a7
commit 4ae59d848a
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9
3 changed files with 23 additions and 19 deletions

View file

@ -5,7 +5,7 @@ theme: []const u8 = "default",
input_mode: []const u8 = "flow",
gutter_line_numbers: bool = true,
gutter_line_numbers_relative: bool = false,
gutter_line_numbers_style: LineNumberStyle = .ascii,
gutter_line_numbers_style: DigitStyle = .ascii,
gutter_symbols: bool = true,
enable_terminal_cursor: bool = true,
enable_terminal_color_scheme: bool = builtin.os.tag != .windows,
@ -27,7 +27,7 @@ lsp_request_timeout: usize = 10,
include_files: []const u8 = "",
pub const LineNumberStyle = enum {
pub const DigitStyle = enum {
ascii,
digital,
subscript,

View file

@ -17,7 +17,7 @@ const Widget = @import("Widget.zig");
const MessageFilter = @import("MessageFilter.zig");
const tui = @import("tui.zig");
const ed = @import("editor.zig");
const LineNumberStyle = @import("config").LineNumberStyle;
const DigitStyle = @import("config").DigitStyle;
allocator: Allocator,
plane: Plane,
@ -29,7 +29,7 @@ row: u32 = 1,
line: usize = 0,
linenum: bool,
relative: bool,
render_style: LineNumberStyle,
render_style: DigitStyle,
highlight: bool,
symbols: bool,
width: usize = 4,
@ -424,7 +424,7 @@ fn int_width(n_: usize) usize {
}
}
fn print_digits(self: *Self, n_: anytype, style_: LineNumberStyle) !void {
fn print_digits(self: *Self, n_: anytype, style_: DigitStyle) !void {
var n = n_;
var buf: [12][]const u8 = undefined;
var digits: std.ArrayListUnmanaged([]const u8) = .initBuffer(&buf);
@ -438,20 +438,8 @@ fn print_digits(self: *Self, n_: anytype, style_: LineNumberStyle) !void {
for (digits.items) |digit| _ = try self.plane.putstr(digit);
}
pub fn print_digit(plane: *Plane, n: anytype, style_: LineNumberStyle) !void {
pub fn print_digit(plane: *Plane, n: anytype, style_: DigitStyle) !void {
_ = try plane.putstr(get_digit(n, style_));
}
fn get_digit(n: anytype, style_: LineNumberStyle) []const u8 {
return switch (style_) {
.ascii => digits_ascii[n],
.digital => digits_digtl[n],
.subscript => digits_subsc[n],
.superscript => digits_super[n],
};
}
const digits_ascii: [10][]const u8 = .{ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
const digits_digtl: [10][]const u8 = .{ "🯰", "🯱", "🯲", "🯳", "🯴", "🯵", "🯶", "🯷", "🯸", "🯹" };
const digits_subsc: [10][]const u8 = .{ "", "", "", "", "", "", "", "", "", "" };
const digits_super: [10][]const u8 = .{ "", "¹", "²", "³", "", "", "", "", "", "" };
const get_digit = @import("fonts.zig").get_digit;

View file

@ -230,3 +230,19 @@ pub const font_test_text: []const u8 =
\\ "Cascadia Code NF" => https://github.com/microsoft/cascadia-code/releases/download/v2407.24/CascadiaCode-2407.24.zip
\\
;
pub const DigitStyle = @import("config").DigitStyle;
pub fn get_digit(n: anytype, style_: DigitStyle) []const u8 {
return switch (style_) {
.ascii => digits_ascii[n],
.digital => digits_digtl[n],
.subscript => digits_subsc[n],
.superscript => digits_super[n],
};
}
const digits_ascii: [10][]const u8 = .{ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
const digits_digtl: [10][]const u8 = .{ "🯰", "🯱", "🯲", "🯳", "🯴", "🯵", "🯶", "🯷", "🯸", "🯹" };
const digits_subsc: [10][]const u8 = .{ "", "", "", "", "", "", "", "", "", "" };
const digits_super: [10][]const u8 = .{ "", "¹", "²", "³", "", "", "", "", "", "" };