refactor: simplify match mode

This commit is contained in:
Igor Támara 2025-11-17 14:25:25 -05:00 committed by CJ van den Berg
parent 124cbcbe5f
commit 0b80ae50db
2 changed files with 16 additions and 48 deletions

View file

@ -18,48 +18,11 @@ pub fn name(self: *Type) []const u8 {
}
pub fn process_egc(self: *Type, egc: []const u8) command.Result {
var prev: []const u8 = "";
if ((self.ctx.args.match(.{tp.extract(&prev)}) catch false)) {
if (std.mem.eql(u8, prev, "mi")) {
command.executeName("select_textobject_inner", command.fmt(.{egc})) catch {
try command.executeName("exit_mini_mode", .{});
};
} else if (std.mem.eql(u8, prev, "ma")) {
command.executeName("select_textobject_around", command.fmt(.{egc})) catch {
try command.executeName("exit_mini_mode", .{});
};
} else if (std.mem.eql(u8, prev, "md")) {
command.executeName("surround_delete", command.fmt(.{egc})) catch {
try command.executeName("exit_mini_mode", .{});
};
} else if (std.mem.eql(u8, prev, "mr")) {
command.executeName("surround_replace", command.fmt(.{egc})) catch {
try command.executeName("exit_mini_mode", .{});
};
} else if (std.mem.eql(u8, prev, "ms")) {
command.executeName("surround_add", command.fmt(.{egc})) catch {
try command.executeName("exit_mini_mode", .{});
};
}
try command.executeName("exit_mini_mode", .{});
var action: []const u8 = "";
if ((self.ctx.args.match(.{tp.extract(&action)}) catch false)) {
try command.executeName(action, command.fmt(.{egc}));
} else {
if (std.mem.eql(u8, egc, "i")) {
try command.executeName("match", command.fmt(.{"mi"}));
} else if (std.mem.eql(u8, egc, "a")) {
try command.executeName("match", command.fmt(.{"ma"}));
} else if (std.mem.eql(u8, egc, "d")) {
try command.executeName("match", command.fmt(.{"md"}));
} else if (std.mem.eql(u8, egc, "r")) {
try command.executeName("match", command.fmt(.{"mr"}));
} else if (std.mem.eql(u8, egc, "s")) {
try command.executeName("match", command.fmt(.{"ms"}));
} else if (std.mem.eql(u8, egc, "m")) {
command.executeName("match_brackets", .{}) catch {
try command.executeName("exit_mini_mode", .{});
};
try command.executeName("exit_mini_mode", .{});
} else {
try command.executeName("exit_mini_mode", .{});
}
try command.executeName("match_brackets", .{});
}
try command.executeName("exit_mini_mode", .{});
}