fmt: format array elements line-by-line when nl after `[` (#5776)
parent
31ac20876c
commit
e47ad33af6
|
@ -1479,22 +1479,25 @@ pub fn (mut f Fmt) array_init(it ast.ArrayInit) {
|
||||||
f.write('[')
|
f.write('[')
|
||||||
mut inc_indent := false
|
mut inc_indent := false
|
||||||
mut last_line_nr := it.pos.line_nr // to have the same newlines between array elements
|
mut last_line_nr := it.pos.line_nr // to have the same newlines between array elements
|
||||||
|
mut break_after_each_element := false
|
||||||
for i, expr in it.exprs {
|
for i, expr in it.exprs {
|
||||||
mut penalty := 3
|
|
||||||
line_nr := expr.position().line_nr
|
line_nr := expr.position().line_nr
|
||||||
if last_line_nr < line_nr {
|
if i == 0 && last_line_nr < line_nr {
|
||||||
penalty--
|
break_after_each_element = true
|
||||||
}
|
}
|
||||||
if i == 0 ||
|
mut penalty := if break_after_each_element { 0 } else { 3 }
|
||||||
it.exprs[i - 1] is ast.ArrayInit ||
|
if penalty > 0 {
|
||||||
it.exprs[i - 1] is ast.StructInit ||
|
if i == 0 ||
|
||||||
it.exprs[i - 1] is ast.MapInit || it.exprs[i - 1] is ast.CallExpr {
|
it.exprs[i - 1] is ast.ArrayInit ||
|
||||||
penalty--
|
it.exprs[i - 1] is ast.StructInit ||
|
||||||
}
|
it.exprs[i - 1] is ast.MapInit || it.exprs[i - 1] is ast.CallExpr {
|
||||||
if expr is ast.ArrayInit ||
|
penalty--
|
||||||
expr is ast.StructInit || expr is ast.MapInit ||
|
}
|
||||||
expr is ast.CallExpr {
|
if expr is ast.ArrayInit ||
|
||||||
penalty--
|
expr is ast.StructInit || expr is ast.MapInit ||
|
||||||
|
expr is ast.CallExpr {
|
||||||
|
penalty--
|
||||||
|
}
|
||||||
}
|
}
|
||||||
is_new_line := f.wrap_long_line(penalty, !inc_indent)
|
is_new_line := f.wrap_long_line(penalty, !inc_indent)
|
||||||
if is_new_line && !inc_indent {
|
if is_new_line && !inc_indent {
|
||||||
|
|
|
@ -13,6 +13,12 @@ const (
|
||||||
one_line_supported = ['windows', 'mac', 'macos', 'darwin', 'linux', 'freebsd', 'openbsd',
|
one_line_supported = ['windows', 'mac', 'macos', 'darwin', 'linux', 'freebsd', 'openbsd',
|
||||||
'netbsd', 'dragonfly', 'android', 'js', 'solaris', 'haiku', 'linux_or_macos']
|
'netbsd', 'dragonfly', 'android', 'js', 'solaris', 'haiku', 'linux_or_macos']
|
||||||
another_const = ['a', 'b', 'c', 'd', 'e', 'f']
|
another_const = ['a', 'b', 'c', 'd', 'e', 'f']
|
||||||
|
multiline_const = [
|
||||||
|
'first line',
|
||||||
|
'second line',
|
||||||
|
'third line',
|
||||||
|
'fourth line'
|
||||||
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -24,3 +30,31 @@ const (
|
||||||
pub const (
|
pub const (
|
||||||
i_am_pub_const = true
|
i_am_pub_const = true
|
||||||
)
|
)
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
a := [
|
||||||
|
[3, 5, 6],
|
||||||
|
[7, 9, 2]
|
||||||
|
]
|
||||||
|
b := [[
|
||||||
|
[2, 5, 8],
|
||||||
|
[5, 1, 3],
|
||||||
|
[2, 6, 0]
|
||||||
|
], [
|
||||||
|
[9, 4, 5],
|
||||||
|
[7, 2, 3],
|
||||||
|
[1, 2, 3]
|
||||||
|
]]
|
||||||
|
c := [
|
||||||
|
[
|
||||||
|
[2, 5, 8],
|
||||||
|
[5, 1, 3],
|
||||||
|
[2, 6, 0]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[9, 4, 5],
|
||||||
|
[7, 2, 3],
|
||||||
|
[1, 2, 3]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
|
@ -11,11 +11,13 @@ eulers=2.7182
|
||||||
supported_platforms = ['windows', 'mac', 'macos', 'darwin', 'linux', 'freebsd', 'openbsd',
|
supported_platforms = ['windows', 'mac', 'macos', 'darwin', 'linux', 'freebsd', 'openbsd',
|
||||||
'netbsd', 'dragonfly', 'android', 'js', 'solaris', 'haiku', 'linux_or_macos']
|
'netbsd', 'dragonfly', 'android', 'js', 'solaris', 'haiku', 'linux_or_macos']
|
||||||
one_line_supported = ['windows', 'mac', 'macos', 'darwin', 'linux', 'freebsd', 'openbsd', 'netbsd', 'dragonfly', 'android', 'js', 'solaris', 'haiku', 'linux_or_macos']
|
one_line_supported = ['windows', 'mac', 'macos', 'darwin', 'linux', 'freebsd', 'openbsd', 'netbsd', 'dragonfly', 'android', 'js', 'solaris', 'haiku', 'linux_or_macos']
|
||||||
another_const = [
|
another_const = ['a', 'b'
|
||||||
'a', 'b'
|
|
||||||
'c', 'd', 'e'
|
'c', 'd', 'e'
|
||||||
'f'
|
'f'
|
||||||
]
|
]
|
||||||
|
multiline_const = [
|
||||||
|
'first line', 'second line','third line',
|
||||||
|
'fourth line']
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -26,4 +28,26 @@ pub const (
|
||||||
i_am_pub_const=true
|
i_am_pub_const=true
|
||||||
)
|
)
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
a := [
|
||||||
|
[3,
|
||||||
|
5,
|
||||||
|
6],[7, 9, 2]]
|
||||||
|
b := [[
|
||||||
|
[2,
|
||||||
|
5,8],[ 5, 1,
|
||||||
|
3],[ 2, 6, 0]],[
|
||||||
|
[9,
|
||||||
|
4,5],[7,2,3],
|
||||||
|
[1,
|
||||||
|
2,3]]]
|
||||||
|
c := [
|
||||||
|
[
|
||||||
|
[2,
|
||||||
|
5,8],[ 5, 1,
|
||||||
|
3],[ 2, 6, 0]],[
|
||||||
|
[9,
|
||||||
|
4,5],[7,2,3],
|
||||||
|
[1,
|
||||||
|
2,3]]]
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue