diff --git a/src/Project.zig b/src/Project.zig index 2aaede9..5496358 100644 --- a/src/Project.zig +++ b/src/Project.zig @@ -1086,7 +1086,7 @@ fn send_completion_item(to: tp.pid_ref, file_path: []const u8, row: usize, col: var range_: []const u8 = undefined; if (!(try cbor.matchValue(&iter, cbor.extract_cbor(&range_)))) return invalid_field("textEdit.insert"); textEdit_insert = try read_range(range_); - } else if (std.mem.eql(u8, field_name, "replace")) { + } else if (std.mem.eql(u8, field_name, "replace") or std.mem.eql(u8, field_name, "range")) { var range_: []const u8 = undefined; if (!(try cbor.matchValue(&iter, cbor.extract_cbor(&range_)))) return invalid_field("textEdit.replace"); textEdit_replace = try read_range(range_); diff --git a/src/tui/mainview.zig b/src/tui/mainview.zig index 6cce2b3..530e8cf 100644 --- a/src/tui/mainview.zig +++ b/src/tui/mainview.zig @@ -879,8 +879,10 @@ const cmds = struct { tp.extract(&col), })) return error.InvalidAddDiagnosticArgument; file_path = project_manager.normalize_file_path(file_path); - if (self.get_active_editor()) |editor| if (std.mem.eql(u8, file_path, editor.file_path orelse "")) + if (self.get_active_editor()) |editor| if (std.mem.eql(u8, file_path, editor.file_path orelse "")) { try tui.open_overlay(@import("mode/overlay/completion_palette.zig").Type); + tui.need_render(); + }; } pub const add_completion_done_meta: Meta = .{ .arguments = &.{ diff --git a/src/tui/mode/overlay/completion_palette.zig b/src/tui/mode/overlay/completion_palette.zig index ce7afde..c36b4a3 100644 --- a/src/tui/mode/overlay/completion_palette.zig +++ b/src/tui/mode/overlay/completion_palette.zig @@ -41,7 +41,7 @@ pub fn load_entries(palette: *Type) !usize { var max_label_len: usize = 0; for (palette.entries.items) |*item| { const label_, const sort_text, _, const replace = get_values(item.cbor); - if (palette.value.replace == null) + if (palette.value.replace == null and !(replace.begin.row == 0 and replace.begin.col == 0 and replace.end.row == 0 and replace.end.col == 0)) palette.value.replace = replace; item.label = label_; item.sort_text = sort_text;