Skip to content

Commit 6c9bc10

Browse files
authored
Give record expressions block-like formatting in argument lists. (#1208)
This is consistent with how other collection literals are formatted in argument lists. I originally made the formatting diverge deliberately because I felt it would make it clearer when you're looking at a record versus a series of arguments. But based on the thumbs up on: #1205 It appears that users prefer the more consistent formatting. In retrospect, I think I do too.
1 parent 80288ef commit 6c9bc10

File tree

4 files changed

+31
-17
lines changed

4 files changed

+31
-17
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
* Don't format `sealed`, `interface`, and `final` keywords on mixin
88
declarations. The proposal was updated to no longer support them.
99
* Don't split before a single-section cascade following a record literal.
10+
* Give records block-like formatting in argument lists (#1205).
1011

1112
# 2.3.0
1213

lib/src/argument_list_visitor.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,7 @@ class ArgumentSublist {
541541
// TODO(rnystrom): Should we step into parenthesized expressions?
542542

543543
if (expression is ListLiteral) return expression.leftBracket;
544+
if (expression is RecordLiteral) return expression.leftParenthesis;
544545
if (expression is SetOrMapLiteral) return expression.leftBracket;
545546
if (expression is SingleStringLiteral && expression.isMultiline) {
546547
return expression.beginToken;

test/regression/1200/1205.stmt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
>>>
2+
error(
3+
offset: 10,
4+
(
5+
code: 'unclosed-block',
6+
message: 'Block was left open',
7+
));
8+
<<<
9+
error(offset: 10, (
10+
code: 'unclosed-block',
11+
message: 'Block was left open',
12+
));

test/splitting/records.stmt

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -150,27 +150,27 @@ var record = (
150150

151151
element
152152
);
153-
>>> unlike collections, records do not do block-like formatting in arguments
153+
>>> format like a block in an argument list
154154
longFunctionName((element, element), (element, element, element, element));
155155
<<<
156-
longFunctionName(
157-
(element, element),
158-
(
159-
element,
160-
element,
161-
element,
162-
element
163-
));
164-
>>> unlike collections, records do not do block-like formatting in arguments
156+
longFunctionName((
157+
element,
158+
element
159+
), (
160+
element,
161+
element,
162+
element,
163+
element
164+
));
165+
>>> format like a block in an argument list
165166
longFunctionName((element, element, element, element));
166167
<<<
167-
longFunctionName(
168-
(
169-
element,
170-
element,
171-
element,
172-
element
173-
));
168+
longFunctionName((
169+
element,
170+
element,
171+
element,
172+
element
173+
));
174174
>>> don't allow splitting between field name and record
175175
var record = (argument, argument, argument, recordFieldName: (veryLongElement__________,));
176176
<<<

0 commit comments

Comments
 (0)