-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
Useful for when Zig breaks codegenned syntax and for codegen devs. Here's one way to do it:
fn format(allocator: Allocator, fname: []const u8, code: [:0]const u8) ![]const u8 {
var ast = try std.zig.Ast.parse(allocator, code, .zig);
defer ast.deinit(allocator);
if (ast.errors.len > 0) {
for (ast.errors) |err| {
var buf = std.ArrayList(u8).init(allocator);
defer buf.deinit();
ast.renderError(err, buf.writer()) catch {};
log.err("formatting {s}: {s}", .{ fname, buf.items });
}
return code;
}
return try ast.render(allocator);
}Metadata
Metadata
Assignees
Labels
No labels