diff --git a/src/features/completions.zig b/src/features/completions.zig index e4e4a92ee..98ec78b43 100644 --- a/src/features/completions.zig +++ b/src/features/completions.zig @@ -487,6 +487,7 @@ fn prepareCompletionLoc(tree: *const Ast, source_index: usize) offsets.Loc { std.debug.assert(token_loc.start <= source_index and source_index <= token_loc.end); return offsets.identifierIndexToLoc(tree.source, token_loc.start, if (tag == .builtin) .name else .full); }, + .colon => return fallback_loc, else => { const token_start = tree.tokenStart(token); diff --git a/tests/lsp_features/completion.zig b/tests/lsp_features/completion.zig index c3c1e48ec..78d989e3d 100644 --- a/tests/lsp_features/completion.zig +++ b/tests/lsp_features/completion.zig @@ -3334,6 +3334,17 @@ test "label" { , &.{ .{ .label = "alpha", .kind = .Field, .detail = "u32" }, }); + + try testCompletionTextEdit(.{ + .source = + \\const foo = blk: { + \\ break : + \\}; + , + .label = "blk", + .expected_insert_line = " break :blk", + .expected_replace_line = " break :blk", + }); } test "either" {