refactor: BREAKING merge gutter_line_numbers and gutter_line_numbers_relative config options into an enum

This commit is contained in:
CJ van den Berg 2025-02-20 21:09:44 +01:00
parent ec3bba2aff
commit b9cc3936c8
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9
4 changed files with 30 additions and 32 deletions

View file

@ -572,25 +572,17 @@ const cmds = struct {
pub fn gutter_mode_next(self: *Self, _: Ctx) Result {
const config = tui.config_mut();
var ln = config.gutter_line_numbers;
var lnr = config.gutter_line_numbers_relative;
if (ln and !lnr) {
ln = true;
lnr = true;
} else if (ln and lnr) {
ln = false;
lnr = false;
} else {
ln = true;
lnr = false;
}
config.gutter_line_numbers = ln;
config.gutter_line_numbers_relative = lnr;
const mode: ?@import("config").LineNumberMode = if (config.gutter_line_numbers_mode) |mode| switch(mode) {
.absolute => .relative,
.relative => .none,
.none => null,
} else .relative;
config.gutter_line_numbers_mode = mode;
try tui.save_config();
if (self.widgets.get("editor_gutter")) |gutter_widget| {
const gutter = gutter_widget.dynamic_cast(@import("editor_gutter.zig")) orelse return;
gutter.linenum = ln;
gutter.mode = if(lnr) .relative else null;
gutter.mode = mode;
}
}
pub const gutter_mode_next_meta = .{ .description = "Next gutter mode" };