diff --git a/src/tui/mode/overlay/open_recent.zig b/src/tui/mode/overlay/open_recent.zig index 233b349..abddbf6 100644 --- a/src/tui/mode/overlay/open_recent.zig +++ b/src/tui/mode/overlay/open_recent.zig @@ -60,7 +60,9 @@ pub fn create(allocator: std.mem.Allocator) !tui.Mode { try mv.floating_views.add(self.modal.widget()); try mv.floating_views.add(self.menu.container_widget); return .{ - .input_handler = try keybind.mode.overlay.palette.create(allocator, .{}), + .input_handler = try keybind.mode.overlay.palette.create(allocator, .{ + .insert_command = "overlay_insert_bytes", + }), .event_handler = EventHandler.to_owned(self), .name = "󰈞 open recent", }; @@ -308,6 +310,14 @@ const cmds = struct { } pub const overlay_insert_code_point_meta = .{ .interactive = false }; + pub fn overlay_insert_bytes(self: *Self, ctx: Ctx) Result { + var bytes: []const u8 = undefined; + if (!try ctx.args.match(.{tp.extract(&bytes)})) + return error.InvalidArgument; + self.insert_bytes(bytes) catch |e| return tp.exit_error(e, @errorReturnTrace()); + } + pub const overlay_insert_bytes_meta = .{ .interactive = false }; + pub fn overlay_release_control(self: *Self, _: Ctx) Result { if (self.menu.selected orelse 0 > 0) return self.cmd("palette_menu_activate", .{}); } diff --git a/src/tui/mode/overlay/palette.zig b/src/tui/mode/overlay/palette.zig index a2f58bb..4287c4c 100644 --- a/src/tui/mode/overlay/palette.zig +++ b/src/tui/mode/overlay/palette.zig @@ -82,7 +82,9 @@ pub fn Create(options: type) type { try mv.floating_views.add(self.modal.widget()); try mv.floating_views.add(self.menu.container_widget); return .{ - .input_handler = try keybind.mode.overlay.palette.create(allocator, .{}), + .input_handler = try keybind.mode.overlay.palette.create(allocator, .{ + .insert_command = "overlay_insert_bytes", + }), .event_handler = EventHandler.to_owned(self), .name = options.name, }; @@ -432,6 +434,14 @@ pub fn Create(options: type) type { } pub const overlay_insert_code_point_meta = .{ .interactive = false }; + pub fn overlay_insert_bytes(self: *Self, ctx: Ctx) Result { + var bytes: []const u8 = undefined; + if (!try ctx.args.match(.{tp.extract(&bytes)})) + return error.InvalidArgument; + self.insert_bytes(bytes) catch |e| return tp.exit_error(e, @errorReturnTrace()); + } + pub const overlay_insert_bytes_meta = .{ .interactive = false }; + pub fn overlay_release_control(self: *Self, _: Ctx) Result { if (self.menu.selected orelse 0 > 0) return self.cmd("palette_menu_activate", .{}); }