refactor: add support for delete word during completion
This commit is contained in:
parent
911fc3160a
commit
4f39bbbd41
2 changed files with 18 additions and 0 deletions
|
|
@ -386,6 +386,7 @@
|
||||||
["ctrl+down", "palette_menu_down"],
|
["ctrl+down", "palette_menu_down"],
|
||||||
["ctrl+enter", "palette_menu_activate"],
|
["ctrl+enter", "palette_menu_activate"],
|
||||||
["tab", "palette_menu_complete"],
|
["tab", "palette_menu_complete"],
|
||||||
|
["ctrl+backspace", "overlay_delete_word_left"],
|
||||||
["backspace", "overlay_delete_backwards"]
|
["backspace", "overlay_delete_backwards"]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
@ -400,6 +401,7 @@
|
||||||
["down", "palette_menu_down"],
|
["down", "palette_menu_down"],
|
||||||
["enter", "palette_menu_activate"],
|
["enter", "palette_menu_activate"],
|
||||||
["tab", "palette_menu_complete"],
|
["tab", "palette_menu_complete"],
|
||||||
|
["ctrl+backspace", "overlay_delete_word_left"],
|
||||||
["backspace", "overlay_delete_backwards"]
|
["backspace", "overlay_delete_backwards"]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -353,6 +353,17 @@ pub fn Create(options: type) type {
|
||||||
return matches.items.len;
|
return matches.items.len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn delete_word(self: *Self) !void {
|
||||||
|
if (std.mem.lastIndexOfAny(u8, self.query.items, "/\\. -_")) |pos| {
|
||||||
|
self.query.shrinkRetainingCapacity(pos);
|
||||||
|
} else {
|
||||||
|
self.query.shrinkRetainingCapacity(0);
|
||||||
|
}
|
||||||
|
if (@hasDecl(options, "update_query"))
|
||||||
|
options.update_query(self, self.query.items);
|
||||||
|
return self.start_query(0);
|
||||||
|
}
|
||||||
|
|
||||||
fn delete_code_point(self: *Self) !void {
|
fn delete_code_point(self: *Self) !void {
|
||||||
if (self.query.items.len > 0) {
|
if (self.query.items.len > 0) {
|
||||||
self.query.shrinkRetainingCapacity(self.query.items.len - tui.egc_last(self.query.items).len);
|
self.query.shrinkRetainingCapacity(self.query.items.len - tui.egc_last(self.query.items).len);
|
||||||
|
|
@ -532,6 +543,11 @@ pub fn Create(options: type) type {
|
||||||
}
|
}
|
||||||
pub const palette_menu_cancel_meta: Meta = .{};
|
pub const palette_menu_cancel_meta: Meta = .{};
|
||||||
|
|
||||||
|
pub fn overlay_delete_word_left(self: *Self, _: Ctx) Result {
|
||||||
|
self.delete_word() catch |e| return tp.exit_error(e, @errorReturnTrace());
|
||||||
|
}
|
||||||
|
pub const overlay_delete_word_left_meta: Meta = .{ .description = "Delete word to the left" };
|
||||||
|
|
||||||
pub fn overlay_delete_backwards(self: *Self, _: Ctx) Result {
|
pub fn overlay_delete_backwards(self: *Self, _: Ctx) Result {
|
||||||
self.delete_code_point() catch |e| return tp.exit_error(e, @errorReturnTrace());
|
self.delete_code_point() catch |e| return tp.exit_error(e, @errorReturnTrace());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue