fix: support for $0 in snippets

This commit is contained in:
CJ van den Berg 2025-12-09 20:05:06 +01:00
parent 50db9082d8
commit a897e6bf87
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9

View file

@ -136,8 +136,16 @@ pub fn parse(allocator: std.mem.Allocator, snippet: []const u8) Error!Snippet {
for (tabstops.items) |item| if (item.id == n) { for (tabstops.items) |item| if (item.id == n) {
(try tabstop.addOne(allocator)).* = item.range; (try tabstop.addOne(allocator)).* = item.range;
}; };
(try result.addOne(allocator)).* = try tabstop.toOwnedSlice(allocator); if (tabstop.items.len > 0)
(try result.addOne(allocator)).* = try tabstop.toOwnedSlice(allocator);
} }
var tabstop: std.ArrayList(Range) = .empty;
errdefer tabstop.deinit(allocator);
for (tabstops.items) |item| if (item.id == 0) {
(try tabstop.addOne(allocator)).* = item.range;
};
if (tabstop.items.len > 0)
(try result.addOne(allocator)).* = try tabstop.toOwnedSlice(allocator);
return .{ return .{
.text = try text.toOwnedSlice(), .text = try text.toOwnedSlice(),
.tabstops = try result.toOwnedSlice(allocator), .tabstops = try result.toOwnedSlice(allocator),