Extend_line_below: integer parameter

This commit is contained in:
ivel.santos 2025-04-08 17:47:07 -03:00 committed by CJ van den Berg
parent e993296590
commit f58babf2e7
2 changed files with 26 additions and 21 deletions

View file

@ -501,15 +501,16 @@
["space h", "select_references_to_symbol_under_cursor"],
["space c", "toggle_comment"],
["1", "add_count", 1],
["2", "add_count", 2],
["3", "add_count", 3],
["4", "add_count", 4],
["5", "add_count", 5],
["6", "add_count", 6],
["7", "add_count", 7],
["8", "add_count", 8],
["9", "add_count", 9]
["0", "add_integer_argument_digit", 0],
["1", "add_integer_argument_digit", 1],
["2", "add_integer_argument_digit", 2],
["3", "add_integer_argument_digit", 3],
["4", "add_integer_argument_digit", 4],
["5", "add_integer_argument_digit", 5],
["6", "add_integer_argument_digit", 6],
["7", "add_integer_argument_digit", 7],
["8", "add_integer_argument_digit", 8],
["9", "add_integer_argument_digit", 9]
]
},
"home": {

View file

@ -78,25 +78,29 @@ const cmds_ = struct {
}
pub const save_selection_meta: Meta = .{ .description = "Save current selection to location history" };
pub fn extend_line_below(_: *void, _: Ctx) Result {
pub fn extend_line_below(_: *void, ctx: Ctx) Result {
const mv = tui.mainview() orelse return;
const ed = mv.get_active_editor() orelse return;
const root = try ed.buf_root();
for (ed.cursels.items) |*cursel_| if (cursel_.*) |*cursel| {
const sel = cursel.enable_selection_normal();
sel.normalize();
try Editor.move_cursor_begin(root, &sel.begin, ed.metrics);
try Editor.move_cursor_end(root, &sel.end, ed.metrics);
cursel.cursor = sel.end;
try cursel.selection.?.end.move_right(root, ed.metrics);
try cursel.cursor.move_right(root, ed.metrics);
};
var repeat: usize = 1;
_ = ctx.args.match(.{tp.extract(&repeat)}) catch false;
while (repeat > 0) : (repeat -= 1) {
for (ed.cursels.items) |*cursel_| if (cursel_.*) |*cursel| {
const sel = cursel.enable_selection_normal();
sel.normalize();
try Editor.move_cursor_begin(root, &sel.begin, ed.metrics);
try Editor.move_cursor_end(root, &sel.end, ed.metrics);
cursel.cursor = sel.end;
try cursel.selection.?.end.move_right(root, ed.metrics);
try cursel.cursor.move_right(root, ed.metrics);
};
}
ed.clamp();
}
pub const extend_line_below_meta: Meta = .{ .description = "Select current line, if already selected, extend to next line" };
pub const extend_line_below_meta: Meta = .{ .arguments = &.{.integer}, .description = "Select current line, if already selected, extend to next line" };
pub fn move_next_word_start(_: *void, ctx: Ctx) Result {
const mv = tui.mainview() orelse return;