diff --git a/src/tui/editor.zig b/src/tui/editor.zig index 61cbba0..e13d0d4 100644 --- a/src/tui/editor.zig +++ b/src/tui/editor.zig @@ -5602,6 +5602,11 @@ pub const Editor = struct { } } + pub fn selection_pos_to_width(self: *Self, sel_: Selection) ?Selection { + const root = self.buf_root() catch return null; + return sel_.from_pos(root, self.metrics) catch null; + } + fn count_lines(content: []const u8) struct { usize, usize } { var pos = content; var offset = content.len; diff --git a/src/tui/mode/overlay/completion_palette.zig b/src/tui/mode/overlay/completion_palette.zig index c36b4a3..5d9789e 100644 --- a/src/tui/mode/overlay/completion_palette.zig +++ b/src/tui/mode/overlay/completion_palette.zig @@ -130,6 +130,15 @@ fn get_values(item_cbor: []const u8) struct { []const u8, []const u8, u8, Buffer return .{ label_, sort_text, kind, replace }; } +fn get_replace_selection(replace: Buffer.Selection) ?Buffer.Selection { + return if (tui.get_active_editor()) |edt| + edt.selection_pos_to_width(replace) + else if (replace.empty()) + null + else + replace; +} + fn select(menu: **Type.MenuState, button: *Type.ButtonState) void { const label_, _, _, _ = get_values(button.opts.label); tp.self_pid().send(.{ "cmd", "exit_overlay_mode" }) catch |e| menu.*.opts.ctx.logger.err(module_name, e);