Compare commits
2 commits
f6d1f27337
...
1600bf6406
| Author | SHA1 | Date | |
|---|---|---|---|
| 1600bf6406 | |||
| 54c68df967 |
4 changed files with 14 additions and 14 deletions
|
|
@ -1951,12 +1951,9 @@ pub const Editor = struct {
|
||||||
self.match_done_token = self.match_token;
|
self.match_done_token = self.match_token;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn clear_matches_if_type(self: *Self, match_type: Match.Type) bool {
|
pub fn clear_matches_if_type(self: *Self, match_type: Match.Type) void {
|
||||||
if (self.match_type == match_type) {
|
if (self.match_type == match_type)
|
||||||
self.clear_matches();
|
self.clear_matches();
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn sort_matches(self: *Self) void {
|
pub fn sort_matches(self: *Self) void {
|
||||||
|
|
|
||||||
|
|
@ -1445,8 +1445,8 @@ fn location_jump(from: tp.pid_ref, file_path: []const u8, cursor: location_histo
|
||||||
}
|
}
|
||||||
|
|
||||||
fn clear_auto_find(self: *Self, editor: *ed.Editor) void {
|
fn clear_auto_find(self: *Self, editor: *ed.Editor) void {
|
||||||
if (editor.clear_matches_if_type(.auto_find))
|
editor.clear_matches_if_type(.auto_find);
|
||||||
self.store_last_match_text(null);
|
self.store_last_match_text(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_last_match_text(self: *Self, text: []const u8) bool {
|
fn is_last_match_text(self: *Self, text: []const u8) bool {
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ pub fn Create(options: type) type {
|
||||||
allocator: std.mem.Allocator,
|
allocator: std.mem.Allocator,
|
||||||
modal: *ModalBackground.State(*Self),
|
modal: *ModalBackground.State(*Self),
|
||||||
menu: *Menu.State(*Self),
|
menu: *Menu.State(*Self),
|
||||||
|
mode: keybind.Mode,
|
||||||
inputbox: *InputBox.State(*Self),
|
inputbox: *InputBox.State(*Self),
|
||||||
logger: log.Logger,
|
logger: log.Logger,
|
||||||
longest: usize = 0,
|
longest: usize = 0,
|
||||||
|
|
@ -83,13 +84,20 @@ pub fn Create(options: type) type {
|
||||||
}))).dynamic_cast(InputBox.State(*Self)) orelse unreachable,
|
}))).dynamic_cast(InputBox.State(*Self)) orelse unreachable,
|
||||||
.view_rows = get_view_rows(tui.screen()),
|
.view_rows = get_view_rows(tui.screen()),
|
||||||
.entries = .empty,
|
.entries = .empty,
|
||||||
|
.mode = try keybind.mode("overlay/palette", allocator, .{
|
||||||
|
.insert_command = "overlay_insert_bytes",
|
||||||
|
}),
|
||||||
};
|
};
|
||||||
try self.commands.init(self);
|
try self.commands.init(self);
|
||||||
|
self.mode.event_handler = EventHandler.to_owned(self);
|
||||||
|
self.mode.name = options.name;
|
||||||
if (self.menu.scrollbar) |scrollbar| scrollbar.style_factory = scrollbar_style;
|
if (self.menu.scrollbar) |scrollbar| scrollbar.style_factory = scrollbar_style;
|
||||||
self.longest_hint = if (@hasDecl(options, "load_entries_with_args"))
|
self.longest_hint = if (@hasDecl(options, "load_entries_with_args"))
|
||||||
try options.load_entries_with_args(self, ctx)
|
try options.load_entries_with_args(self, ctx)
|
||||||
else
|
else
|
||||||
try options.load_entries(self);
|
try options.load_entries(self);
|
||||||
|
if (self.entries.items.len > 0)
|
||||||
|
self.initial_selected = self.menu.selected;
|
||||||
if (@hasDecl(options, "restore_state"))
|
if (@hasDecl(options, "restore_state"))
|
||||||
options.restore_state(self) catch {};
|
options.restore_state(self) catch {};
|
||||||
if (@hasDecl(options, "initial_query")) blk: {
|
if (@hasDecl(options, "initial_query")) blk: {
|
||||||
|
|
@ -101,12 +109,7 @@ pub fn Create(options: type) type {
|
||||||
try self.start_query(0);
|
try self.start_query(0);
|
||||||
try mv.floating_views.add(self.modal.widget());
|
try mv.floating_views.add(self.modal.widget());
|
||||||
try mv.floating_views.add(self.menu.container_widget);
|
try mv.floating_views.add(self.menu.container_widget);
|
||||||
var mode = try keybind.mode("overlay/palette", allocator, .{
|
return self.mode;
|
||||||
.insert_command = "overlay_insert_bytes",
|
|
||||||
});
|
|
||||||
mode.event_handler = EventHandler.to_owned(self);
|
|
||||||
mode.name = options.name;
|
|
||||||
return mode;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn deinit(self: *Self) void {
|
pub fn deinit(self: *Self) void {
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ pub fn load_entries(palette: *Type) !usize {
|
||||||
(try palette.entries.addOne(palette.allocator)).* = .{ .label = try palette.allocator.dupe(u8, task) };
|
(try palette.entries.addOne(palette.allocator)).* = .{ .label = try palette.allocator.dupe(u8, task) };
|
||||||
longest = @max(longest, task.len);
|
longest = @max(longest, task.len);
|
||||||
}
|
}
|
||||||
const hints = if (tui.input_mode()) |m| m.keybind_hints else @panic("no keybind hints");
|
const hints = palette.mode.keybind_hints;
|
||||||
var longest_hint: usize = 0;
|
var longest_hint: usize = 0;
|
||||||
longest_hint = @max(longest_hint, try add_palette_command(palette, "add_task", hints));
|
longest_hint = @max(longest_hint, try add_palette_command(palette, "add_task", hints));
|
||||||
longest_hint = @max(longest_hint, try add_palette_command(palette, "palette_menu_delete_item", hints));
|
longest_hint = @max(longest_hint, try add_palette_command(palette, "palette_menu_delete_item", hints));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue