feat: add argument metadata to (most) commands that take parameters
This commit is contained in:
parent
ae91afe255
commit
150374afae
14 changed files with 85 additions and 78 deletions
|
@ -315,7 +315,7 @@ pub fn Create(options: type) type {
|
|||
try self.file_path.appendSlice(buf[0..bytes]);
|
||||
self.update_mini_mode_text();
|
||||
}
|
||||
pub const mini_mode_insert_code_point_meta = .{ .interactive = false };
|
||||
pub const mini_mode_insert_code_point_meta = .{ .arguments = &.{.integer} };
|
||||
|
||||
pub fn mini_mode_insert_bytes(self: *Self, ctx: Ctx) Result {
|
||||
var bytes: []const u8 = undefined;
|
||||
|
@ -325,7 +325,7 @@ pub fn Create(options: type) type {
|
|||
try self.file_path.appendSlice(bytes);
|
||||
self.update_mini_mode_text();
|
||||
}
|
||||
pub const mini_mode_insert_bytes_meta = .{ .interactive = false };
|
||||
pub const mini_mode_insert_bytes_meta = .{ .arguments = &.{.string} };
|
||||
|
||||
pub fn mini_mode_select(self: *Self, _: Ctx) Result {
|
||||
options.select(self);
|
||||
|
|
|
@ -186,7 +186,7 @@ const cmds = struct {
|
|||
self.insert_code_point(egc) catch |e| return tp.exit_error(e, @errorReturnTrace());
|
||||
self.update_mini_mode_text();
|
||||
}
|
||||
pub const mini_mode_insert_code_point_meta = .{ .interactive = false };
|
||||
pub const mini_mode_insert_code_point_meta = .{ .arguments = &.{.integer} };
|
||||
|
||||
pub fn mini_mode_insert_bytes(self: *Self, ctx: Ctx) Result {
|
||||
var bytes: []const u8 = undefined;
|
||||
|
@ -195,7 +195,7 @@ const cmds = struct {
|
|||
self.insert_bytes(bytes) catch |e| return tp.exit_error(e, @errorReturnTrace());
|
||||
self.update_mini_mode_text();
|
||||
}
|
||||
pub const mini_mode_insert_bytes_meta = .{ .interactive = false };
|
||||
pub const mini_mode_insert_bytes_meta = .{ .arguments = &.{.string} };
|
||||
|
||||
pub fn mini_mode_delete_backwards(self: *Self, _: Ctx) Result {
|
||||
_ = self.input.popOrNull();
|
||||
|
|
|
@ -135,7 +135,7 @@ const cmds = struct {
|
|||
self.insert_code_point(egc) catch |e| return tp.exit_error(e, @errorReturnTrace());
|
||||
self.update_mini_mode_text();
|
||||
}
|
||||
pub const mini_mode_insert_code_point_meta = .{ .interactive = false };
|
||||
pub const mini_mode_insert_code_point_meta = .{ .arguments = &.{.integer} };
|
||||
|
||||
pub fn mini_mode_insert_bytes(self: *Self, ctx: Ctx) Result {
|
||||
var bytes: []const u8 = undefined;
|
||||
|
@ -144,7 +144,7 @@ const cmds = struct {
|
|||
self.insert_bytes(bytes) catch |e| return tp.exit_error(e, @errorReturnTrace());
|
||||
self.update_mini_mode_text();
|
||||
}
|
||||
pub const mini_mode_insert_bytes_meta = .{ .interactive = false };
|
||||
pub const mini_mode_insert_bytes_meta = .{ .arguments = &.{.string} };
|
||||
|
||||
pub fn mini_mode_delete_backwards(self: *Self, _: Ctx) Result {
|
||||
if (self.input.len > 0) {
|
||||
|
|
|
@ -130,7 +130,7 @@ const cmds = struct {
|
|||
self.update_mini_mode_text();
|
||||
self.goto();
|
||||
}
|
||||
pub const mini_mode_insert_code_point_meta = .{ .interactive = false };
|
||||
pub const mini_mode_insert_code_point_meta = .{ .arguments = &.{.integer} };
|
||||
|
||||
pub fn mini_mode_insert_bytes(self: *Self, ctx: Ctx) Result {
|
||||
var bytes: []const u8 = undefined;
|
||||
|
@ -140,5 +140,5 @@ const cmds = struct {
|
|||
self.update_mini_mode_text();
|
||||
self.goto();
|
||||
}
|
||||
pub const mini_mode_insert_bytes_meta = .{ .interactive = false };
|
||||
pub const mini_mode_insert_bytes_meta = .{ .arguments = &.{.string} };
|
||||
};
|
||||
|
|
|
@ -106,7 +106,7 @@ const cmds = struct {
|
|||
const bytes = input.ucs32_to_utf8(&[_]u32{code_point}, &buf) catch return error.InvalidArgument;
|
||||
return self.execute_operation(command.fmt(.{buf[0..bytes]}));
|
||||
}
|
||||
pub const mini_mode_insert_code_point_meta = .{ .interactive = false };
|
||||
pub const mini_mode_insert_code_point_meta = .{ .arguments = &.{.integer} };
|
||||
|
||||
pub fn mini_mode_insert_bytes(self: *Self, ctx: Ctx) Result {
|
||||
var bytes: []const u8 = undefined;
|
||||
|
@ -114,7 +114,7 @@ const cmds = struct {
|
|||
return error.InvalidArgument;
|
||||
return self.execute_operation(ctx);
|
||||
}
|
||||
pub const mini_mode_insert_bytes_meta = .{ .interactive = false };
|
||||
pub const mini_mode_insert_bytes_meta = .{ .arguments = &.{.string} };
|
||||
|
||||
pub fn mini_mode_cancel(_: *Self, _: Ctx) Result {
|
||||
command.executeName("exit_mini_mode", .{}) catch {};
|
||||
|
|
|
@ -19,7 +19,7 @@ pub const Entry = struct {
|
|||
|
||||
pub fn load_entries(palette: *Type) !void {
|
||||
for (command.commands.items) |cmd_| if (cmd_) |p| {
|
||||
if (p.meta.interactive)
|
||||
if (p.meta.description.len > 0)
|
||||
(try palette.entries.addOne()).* = .{
|
||||
.label = if (p.meta.description.len > 0) p.meta.description else p.name,
|
||||
.name = p.name,
|
||||
|
|
|
@ -277,27 +277,27 @@ const cmds = struct {
|
|||
pub fn palette_menu_down(self: *Self, _: Ctx) Result {
|
||||
self.menu.select_down();
|
||||
}
|
||||
pub const palette_menu_down_meta = .{ .interactive = false };
|
||||
pub const palette_menu_down_meta = .{};
|
||||
|
||||
pub fn palette_menu_up(self: *Self, _: Ctx) Result {
|
||||
self.menu.select_up();
|
||||
}
|
||||
pub const palette_menu_up_meta = .{ .interactive = false };
|
||||
pub const palette_menu_up_meta = .{};
|
||||
|
||||
pub fn palette_menu_activate(self: *Self, _: Ctx) Result {
|
||||
self.menu.activate_selected();
|
||||
}
|
||||
pub const palette_menu_activate_meta = .{ .interactive = false };
|
||||
pub const palette_menu_activate_meta = .{};
|
||||
|
||||
pub fn palette_menu_activate_quick(self: *Self, _: Ctx) Result {
|
||||
if (self.menu.selected orelse 0 > 0) self.menu.activate_selected();
|
||||
}
|
||||
pub const palette_menu_activate_quick_meta = .{ .interactive = false };
|
||||
pub const palette_menu_activate_quick_meta = .{};
|
||||
|
||||
pub fn palette_menu_cancel(self: *Self, _: Ctx) Result {
|
||||
try self.cmd("exit_overlay_mode", .{});
|
||||
}
|
||||
pub const palette_menu_cancel_meta = .{ .interactive = false };
|
||||
pub const palette_menu_cancel_meta = .{};
|
||||
|
||||
pub fn overlay_delete_word_left(self: *Self, _: Ctx) Result {
|
||||
self.delete_word() catch |e| return tp.exit_error(e, @errorReturnTrace());
|
||||
|
@ -315,7 +315,7 @@ const cmds = struct {
|
|||
return error.InvalidArgument;
|
||||
self.insert_code_point(egc) catch |e| return tp.exit_error(e, @errorReturnTrace());
|
||||
}
|
||||
pub const overlay_insert_code_point_meta = .{ .interactive = false };
|
||||
pub const overlay_insert_code_point_meta = .{ .arguments = &.{.integer} };
|
||||
|
||||
pub fn overlay_insert_bytes(self: *Self, ctx: Ctx) Result {
|
||||
var bytes: []const u8 = undefined;
|
||||
|
@ -323,20 +323,20 @@ const cmds = struct {
|
|||
return error.InvalidArgument;
|
||||
self.insert_bytes(bytes) catch |e| return tp.exit_error(e, @errorReturnTrace());
|
||||
}
|
||||
pub const overlay_insert_bytes_meta = .{ .interactive = false };
|
||||
pub const overlay_insert_bytes_meta = .{ .arguments = &.{.string} };
|
||||
|
||||
pub fn overlay_release_control(self: *Self, _: Ctx) Result {
|
||||
if (self.menu.selected orelse 0 > 0) return self.cmd("palette_menu_activate", .{});
|
||||
}
|
||||
pub const overlay_release_control_meta = .{ .interactive = false };
|
||||
pub const overlay_release_control_meta = .{};
|
||||
|
||||
pub fn overlay_toggle_panel(self: *Self, _: Ctx) Result {
|
||||
return self.cmd_async("toggle_panel");
|
||||
}
|
||||
pub const overlay_toggle_panel_meta = .{ .interactive = false };
|
||||
pub const overlay_toggle_panel_meta = .{};
|
||||
|
||||
pub fn overlay_toggle_inputview(self: *Self, _: Ctx) Result {
|
||||
return self.cmd_async("toggle_inputview");
|
||||
}
|
||||
pub const overlay_toggle_inputview_meta = .{ .interactive = false };
|
||||
pub const overlay_toggle_inputview_meta = .{};
|
||||
};
|
||||
|
|
|
@ -368,7 +368,7 @@ pub fn Create(options: type) type {
|
|||
self.menu.select_down();
|
||||
self.selection_updated();
|
||||
}
|
||||
pub const palette_menu_down_meta = .{ .interactive = false };
|
||||
pub const palette_menu_down_meta = .{};
|
||||
|
||||
pub fn palette_menu_up(self: *Self, _: Ctx) Result {
|
||||
if (self.menu.selected) |selected| {
|
||||
|
@ -383,7 +383,7 @@ pub fn Create(options: type) type {
|
|||
self.menu.select_up();
|
||||
self.selection_updated();
|
||||
}
|
||||
pub const palette_menu_up_meta = .{ .interactive = false };
|
||||
pub const palette_menu_up_meta = .{};
|
||||
|
||||
pub fn palette_menu_pagedown(self: *Self, _: Ctx) Result {
|
||||
if (self.total_items > self.view_rows) {
|
||||
|
@ -395,7 +395,7 @@ pub fn Create(options: type) type {
|
|||
self.menu.select_last();
|
||||
self.selection_updated();
|
||||
}
|
||||
pub const palette_menu_pagedown_meta = .{ .interactive = false };
|
||||
pub const palette_menu_pagedown_meta = .{};
|
||||
|
||||
pub fn palette_menu_pageup(self: *Self, _: Ctx) Result {
|
||||
if (self.view_pos > self.view_rows)
|
||||
|
@ -406,23 +406,23 @@ pub fn Create(options: type) type {
|
|||
self.menu.select_first();
|
||||
self.selection_updated();
|
||||
}
|
||||
pub const palette_menu_pageup_meta = .{ .interactive = false };
|
||||
pub const palette_menu_pageup_meta = .{};
|
||||
|
||||
pub fn palette_menu_activate(self: *Self, _: Ctx) Result {
|
||||
self.menu.activate_selected();
|
||||
}
|
||||
pub const palette_menu_activate_meta = .{ .interactive = false };
|
||||
pub const palette_menu_activate_meta = .{};
|
||||
|
||||
pub fn palette_menu_activate_quick(self: *Self, _: Ctx) Result {
|
||||
if (self.menu.selected orelse 0 > 0) self.menu.activate_selected();
|
||||
}
|
||||
pub const palette_menu_activate_quick_meta = .{ .interactive = false };
|
||||
pub const palette_menu_activate_quick_meta = .{};
|
||||
|
||||
pub fn palette_menu_cancel(self: *Self, _: Ctx) Result {
|
||||
if (@hasDecl(options, "cancel")) try options.cancel(self);
|
||||
try self.cmd("exit_overlay_mode", .{});
|
||||
}
|
||||
pub const palette_menu_cancel_meta = .{ .interactive = false };
|
||||
pub const palette_menu_cancel_meta = .{};
|
||||
|
||||
pub fn overlay_delete_word_left(self: *Self, _: Ctx) Result {
|
||||
self.delete_word() catch |e| return tp.exit_error(e, @errorReturnTrace());
|
||||
|
@ -440,7 +440,7 @@ pub fn Create(options: type) type {
|
|||
return error.InvalidArgument;
|
||||
self.insert_code_point(egc) catch |e| return tp.exit_error(e, @errorReturnTrace());
|
||||
}
|
||||
pub const overlay_insert_code_point_meta = .{ .interactive = false };
|
||||
pub const overlay_insert_code_point_meta = .{ .arguments = &.{.integer} };
|
||||
|
||||
pub fn overlay_insert_bytes(self: *Self, ctx: Ctx) Result {
|
||||
var bytes: []const u8 = undefined;
|
||||
|
@ -448,22 +448,22 @@ pub fn Create(options: type) type {
|
|||
return error.InvalidArgument;
|
||||
self.insert_bytes(bytes) catch |e| return tp.exit_error(e, @errorReturnTrace());
|
||||
}
|
||||
pub const overlay_insert_bytes_meta = .{ .interactive = false };
|
||||
pub const overlay_insert_bytes_meta = .{ .arguments = &.{.string} };
|
||||
|
||||
pub fn overlay_release_control(self: *Self, _: Ctx) Result {
|
||||
if (self.menu.selected orelse 0 > 0) return self.cmd("palette_menu_activate", .{});
|
||||
}
|
||||
pub const overlay_release_control_meta = .{ .interactive = false };
|
||||
pub const overlay_release_control_meta = .{};
|
||||
|
||||
pub fn overlay_toggle_panel(self: *Self, _: Ctx) Result {
|
||||
return self.cmd_async("toggle_panel");
|
||||
}
|
||||
pub const overlay_toggle_panel_meta = .{ .interactive = false };
|
||||
pub const overlay_toggle_panel_meta = .{};
|
||||
|
||||
pub fn overlay_toggle_inputview(self: *Self, _: Ctx) Result {
|
||||
return self.cmd_async("toggle_inputview");
|
||||
}
|
||||
pub const overlay_toggle_inputview_meta = .{ .interactive = false };
|
||||
pub const overlay_toggle_inputview_meta = .{};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue