authorgravatar for 178735591+87flowers@users.noreply.github.com87flowers <178735591+87flowers@users.noreply.github.com> 2024-10-16 18:33:40+01:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-02-22 17:09:19-08:00
log1b0584fd02a907d096265778044985d4c23fc05f
tree1b95e56fc194bf16399201b4df1d932970160cc5
parentb6a1fdd3fa167878f75b4f12ac170d1a10e4e9a2

std/zig/render: Implement AutoIndentingStream.init


1 files changed, 9 insertions(+), 8 deletions(-)

lib/std/zig/render.zig+9-8
...@@ -81,10 +81,7 @@ const Render = struct {...@@ -81,10 +81,7 @@ const Render = struct {
8181
82pub fn renderTree(buffer: *std.ArrayList(u8), tree: Ast, fixups: Fixups) Error!void {82pub fn renderTree(buffer: *std.ArrayList(u8), tree: Ast, fixups: Fixups) Error!void {
83 assert(tree.errors.len == 0); // Cannot render an invalid tree.83 assert(tree.errors.len == 0); // Cannot render an invalid tree.
84 var auto_indenting_stream = Ais{84 var auto_indenting_stream = Ais.init(buffer, indent_delta);
85 .indent_delta = indent_delta,
86 .underlying_writer = buffer.writer(),
87 };
88 var r: Render = .{85 var r: Render = .{
89 .gpa = buffer.allocator,86 .gpa = buffer.allocator,
90 .ais = &auto_indenting_stream,87 .ais = &auto_indenting_stream,
...@@ -2152,10 +2149,7 @@ fn renderArrayInit(...@@ -2152,10 +2149,7 @@ fn renderArrayInit(
2152 const sub_expr_buffer_starts = try gpa.alloc(usize, section_exprs.len + 1);2149 const sub_expr_buffer_starts = try gpa.alloc(usize, section_exprs.len + 1);
2153 defer gpa.free(sub_expr_buffer_starts);2150 defer gpa.free(sub_expr_buffer_starts);
21542151
2155 var auto_indenting_stream = Ais{2152 var auto_indenting_stream = Ais.init(sub_expr_buffer, indent_delta);
2156 .indent_delta = indent_delta,
2157 .underlying_writer = sub_expr_buffer.writer(),
2158 };
2159 var sub_render: Render = .{2153 var sub_render: Render = .{
2160 .gpa = r.gpa,2154 .gpa = r.gpa,
2161 .ais = &auto_indenting_stream,2155 .ais = &auto_indenting_stream,
...@@ -3341,6 +3335,13 @@ fn AutoIndentingStream(comptime UnderlyingWriter: type) type {...@@ -3341,6 +3335,13 @@ fn AutoIndentingStream(comptime UnderlyingWriter: type) type {
3341 /// not used until the next line3335 /// not used until the next line
3342 indent_next_line: usize = 0,3336 indent_next_line: usize = 0,
33433337
3338 pub fn init(buffer: *std.ArrayList(u8), indent_delta: usize) Self {
3339 return .{
3340 .underlying_writer = buffer.writer(),
3341 .indent_delta = indent_delta,
3342 };
3343 }
3344
3344 pub fn writer(self: *Self) Writer {3345 pub fn writer(self: *Self) Writer {
3345 return .{ .context = self };3346 return .{ .context = self };
3346 }3347 }