fix(prettier) Fix printing of array expressions (#1562)

This commit is contained in:
Cameron 2023-11-28 02:39:37 +00:00 committed by GitHub
parent fe7f6efff2
commit cc25f7897d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 10 deletions

View file

@ -84,6 +84,7 @@ pub(super) fn print_array<'a>(p: &mut Prettier<'a>, array: &Array<'a, '_>) -> Do
let id = p.next_id();
let should_use_concise_formatting = array.is_concisely_printed();
let trailing_comma_fn = |p: &Prettier<'a>| {
if !can_have_trailing_comma {
ss!("")
@ -92,7 +93,7 @@ pub(super) fn print_array<'a>(p: &mut Prettier<'a>, array: &Array<'a, '_>) -> Do
} else if should_use_concise_formatting {
if_break!(p, ",", "", Some(id))
} else {
ss!("")
if_break!(p, ",", "", None)
}
};
@ -109,7 +110,10 @@ pub(super) fn print_array<'a>(p: &mut Prettier<'a>, array: &Array<'a, '_>) -> Do
} else {
indent!(p, softline!(), elements)
};
parts.push(group!(p, ss!("["), parts_inner, softline!(), ss!("]")));
parts.push(ss!("["));
parts.push(parts_inner);
parts.push(softline!());
parts.push(ss!("]"));
let should_break = should_break(array);
Doc::Group(Group::new(parts, should_break).with_id(id))
}
@ -244,11 +248,11 @@ fn should_break(array: &Array) -> bool {
}
}
let Expression::ArrayExpression(array) = element else {
return false;
};
array.elements.len() > 1
match element {
Expression::ArrayExpression(array) => array.elements.len() > 1,
Expression::ObjectExpression(object) => object.properties.len() > 1,
_ => false,
}
})
}
Array::TSTupleType(tuple) => {

View file

@ -1,11 +1,10 @@
Compatibility: 178/591 (30.12%)
Compatibility: 180/591 (30.46%)
# Failed
### arrays
* arrays/empty.js
* arrays/issue-10159.js
* arrays/nested.js
* arrays/numbers-in-args.js
* arrays/numbers-negative-comment-after-minus.js
* arrays/numbers-negative.js
@ -13,7 +12,6 @@ Compatibility: 178/591 (30.12%)
* arrays/numbers-with-trailing-comments.js
* arrays/numbers-with-tricky-comments.js
* arrays/numbers2.js
* arrays/numbers3.js
* arrays/preserve_empty_lines.js
* arrays/tuple-and-record.js