| ... | @@ -81,10 +81,7 @@ const Render = struct { | ... | @@ -81,10 +81,7 @@ const Render = struct { |
| 81 | | 81 | |
| 82 | pub fn renderTree(buffer: *std.ArrayList(u8), tree: Ast, fixups: Fixups) Error!void { | 82 | pub 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); |
| 2154 | | 2151 | |
| 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 line | 3335 | /// not used until the next line |
| 3342 | indent_next_line: usize = 0, | 3336 | indent_next_line: usize = 0, |
| 3343 | | 3337 | |
| | 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 | } |