From d0abaaee2a8fcd9cc0b14707ee543258db673402 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Wed, 21 Jan 2026 17:35:09 +0100 Subject: [PATCH] refactor: move completion replacement logic to editor --- src/tui/editor.zig | 4 ++++ src/tui/mode/overlay/completion_dropdown.zig | 2 +- src/tui/mode/overlay/completion_palette.zig | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/tui/editor.zig b/src/tui/editor.zig index 4b8d4de..670839f 100644 --- a/src/tui/editor.zig +++ b/src/tui/editor.zig @@ -6408,6 +6408,10 @@ pub const Editor = struct { self.completion_is_complete = is_incomplete; } + pub fn get_completion_replacement_selection(self: *Self, replace: Selection) ?Selection { + return replace.from_pos(self.buf_root() catch return null, self.metrics); + } + pub fn select(self: *Self, ctx: Context) Result { var sel: Selection = .{}; if (!try ctx.args.match(.{ tp.extract(&sel.begin.row), tp.extract(&sel.begin.col), tp.extract(&sel.end.row), tp.extract(&sel.end.col) })) diff --git a/src/tui/mode/overlay/completion_dropdown.zig b/src/tui/mode/overlay/completion_dropdown.zig index a85d745..480d9f4 100644 --- a/src/tui/mode/overlay/completion_dropdown.zig +++ b/src/tui/mode/overlay/completion_dropdown.zig @@ -276,7 +276,7 @@ fn get_replace_selection(replace: Buffer.Selection) ?Buffer.Selection { return if (replace.empty()) null else if (tui.get_active_editor()) |edt| - replace.from_pos(edt.buf_root() catch return null, edt.metrics) + edt.get_completion_replacement_selection(replace) else replace; } diff --git a/src/tui/mode/overlay/completion_palette.zig b/src/tui/mode/overlay/completion_palette.zig index 3e700ec..b913a19 100644 --- a/src/tui/mode/overlay/completion_palette.zig +++ b/src/tui/mode/overlay/completion_palette.zig @@ -205,7 +205,7 @@ fn get_replace_selection(replace: Buffer.Selection) ?Buffer.Selection { return if (replace.empty()) null else if (tui.get_active_editor()) |edt| - replace.from_pos(edt.buf_root() catch return null, edt.metrics) + edt.get_completion_replacement_selection(replace) else replace; }