mirror of
https://github.com/ziglang/zig.git
synced 2026-02-12 20:37:54 +00:00
Fix rendering ast in zon mode (#17547)
Co-authored-by: Tobias Simetsreiter <tobias.simetsreiter@wabtec.com>
This commit is contained in:
parent
f58811a58a
commit
7a9500fd80
@ -12,6 +12,7 @@ tokens: TokenList.Slice,
|
||||
/// references to the root node, this means 0 is available to indicate null.
|
||||
nodes: NodeList.Slice,
|
||||
extra_data: []Node.Index,
|
||||
mode: Mode = .zig,
|
||||
|
||||
errors: []const Error,
|
||||
|
||||
@ -96,6 +97,7 @@ pub fn parse(gpa: Allocator, source: [:0]const u8, mode: Mode) Allocator.Error!A
|
||||
// TODO experiment with compacting the MultiArrayList slices here
|
||||
return Ast{
|
||||
.source = source,
|
||||
.mode = mode,
|
||||
.tokens = tokens.toOwnedSlice(),
|
||||
.nodes = parser.nodes.toOwnedSlice(),
|
||||
.extra_data = try parser.extra_data.toOwnedSlice(gpa),
|
||||
|
||||
@ -30,7 +30,17 @@ pub fn renderTree(buffer: *std.ArrayList(u8), tree: Ast) Error!void {
|
||||
try renderContainerDocComments(ais, tree, 0);
|
||||
}
|
||||
|
||||
try renderMembers(buffer.allocator, ais, tree, tree.rootDecls());
|
||||
if (tree.mode == .zon) {
|
||||
try renderExpression(
|
||||
buffer.allocator,
|
||||
ais,
|
||||
tree,
|
||||
tree.nodes.items(.data)[0].lhs,
|
||||
.newline,
|
||||
);
|
||||
} else {
|
||||
try renderMembers(buffer.allocator, ais, tree, tree.rootDecls());
|
||||
}
|
||||
|
||||
if (ais.disabled_offset) |disabled_offset| {
|
||||
try writeFixingWhitespace(ais.underlying_writer, tree.source[disabled_offset..]);
|
||||
|
||||
@ -794,6 +794,7 @@ pub fn render(gpa: Allocator, nodes: []const Node) !std.zig.Ast {
|
||||
.nodes = ctx.nodes.toOwnedSlice(),
|
||||
.extra_data = try ctx.extra_data.toOwnedSlice(gpa),
|
||||
.errors = &.{},
|
||||
.mode = .zig,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user