From 075ec84cf0bba27fbac1fa20e0eb35443310b20b Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Mon, 8 Dec 2025 21:18:04 +0100 Subject: [PATCH] refactor: call snippet parser when inserting completion items --- src/tui/mode/overlay/completion_palette.zig | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/tui/mode/overlay/completion_palette.zig b/src/tui/mode/overlay/completion_palette.zig index f4b84a4..a616bdf 100644 --- a/src/tui/mode/overlay/completion_palette.zig +++ b/src/tui/mode/overlay/completion_palette.zig @@ -201,11 +201,20 @@ fn get_replace_selection(replace: Buffer.Selection) ?Buffer.Selection { } fn select(menu: **Type.MenuType, button: *Type.ButtonType, _: Type.Pos) 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); - tp.self_pid().send(.{ "cmd", "insert_chars", .{label_} }) catch |e| menu.*.opts.ctx.logger.err(module_name, e); + const values = get_values(button.opts.label); + switch (values.insertTextFormat) { + 2 => { + const snippet = @import("snippet").parse(menu.*.opts.ctx.allocator, values.textEdit_newText) catch return; + defer snippet.deinit(menu.*.opts.ctx.allocator); + tp.self_pid().send(.{ "cmd", "insert_chars", .{snippet.text} }) catch |e| menu.*.opts.ctx.logger.err(module_name, e); + }, + else => { + tp.self_pid().send(.{ "cmd", "insert_chars", .{values.label} }) catch |e| menu.*.opts.ctx.logger.err(module_name, e); + }, + } const mv = tui.mainview() orelse return; mv.cancel_info_content() catch {}; + tp.self_pid().send(.{ "cmd", "exit_overlay_mode" }) catch |e| menu.*.opts.ctx.logger.err(module_name, e); } pub fn updated(palette: *Type, button_: ?*Type.ButtonType) !void {