diff --git a/vlib/v/fmt/fmt.v b/vlib/v/fmt/fmt.v index 97fe522e43..90a3ef690a 100644 --- a/vlib/v/fmt/fmt.v +++ b/vlib/v/fmt/fmt.v @@ -469,7 +469,15 @@ fn (var f Fmt) expr(node ast.Expr) { // `[1,2,3]` // type_sym := f.table.get_type_symbol(it.typ) f.write('[') + var inc_indent := false + var line_nr := node.position().line_nr // to have the same newlines between array elements for i, expr in it.exprs { + pos := expr.position() + if i == 0 && line_nr < pos.line_nr { + f.writeln('') + f.indent++ + inc_indent = true + } if i > 0 && it.exprs.len > 1 { f.wrap_long_line() } @@ -477,6 +485,13 @@ fn (var f Fmt) expr(node ast.Expr) { if i < it.exprs.len - 1 { f.write(', ') } + if line_nr < pos.line_nr { + f.writeln('') + } + line_nr = pos.line_nr + } + if inc_indent { + f.indent-- } f.write(']') }