Index: packages/dart_style/test/splitting/invocations.stmt |
diff --git a/packages/dart_style/test/splitting/invocations.stmt b/packages/dart_style/test/splitting/invocations.stmt |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3d2a5032d43c525b6e9249a4827e1f3af5538758 |
--- /dev/null |
+++ b/packages/dart_style/test/splitting/invocations.stmt |
@@ -0,0 +1,162 @@ |
+40 columns | |
+>>> split all chained calls if they don't fit on one line |
+compiler.something().something().something(); |
+<<< |
+compiler |
+ .something() |
+ .something() |
+ .something(); |
+>>> do not split chained calls if not needed |
+compiler.something().something().some(); |
+<<< |
+compiler.something().something().some(); |
+>>> don't split before implicit receiver |
+return |
+ call({'type': type, 'id': id}) |
+ .then(deserializeAsset); |
+<<< |
+return call({'type': type, 'id': id}) |
+ .then(deserializeAsset); |
+>>> allows chained calls on one line with multi-line last argument list |
+compiler |
+ .run(script) |
+ .then((_) { |
+ body; |
+}); |
+<<< |
+compiler.run(script).then((_) { |
+ body; |
+}); |
+>>> allow inline chains before and after a hard newline |
+compiler.a().b((_) { |
+ body; |
+}).c().d(); |
+<<< |
+compiler.a().b((_) { |
+ body; |
+}).c().d(); |
+>>> allow an inline chain before a hard newline but not after |
+compiler.a().b((_) { |
+ body; |
+}).somethingLong().somethingLong().somethingLong(); |
+<<< |
+compiler.a().b((_) { |
+ body; |
+}) |
+ .somethingLong() |
+ .somethingLong() |
+ .somethingLong(); |
+>>> allow an inline chain after a hard newline but not before |
+compiler.somethingLong().somethingLong().somethingLong((_) { |
+ body; |
+}).a().b(); |
+<<< |
+compiler |
+ .somethingLong() |
+ .somethingLong() |
+ .somethingLong((_) { |
+ body; |
+}).a().b(); |
+>>> nest calls one more than target |
+someVeryLongExpression = someVeryLongExpression.someLongMethod(); |
+<<< |
+someVeryLongExpression = |
+ someVeryLongExpression |
+ .someLongMethod(); |
+>>> split properties after a method chain |
+compiler.method().method().method().property.property; |
+<<< |
+compiler |
+ .method() |
+ .method() |
+ .method() |
+ .property |
+ .property; |
+>>> split properties in a method chain |
+compiler.method().property.method().property.method(); |
+<<< |
+compiler |
+ .method() |
+ .property |
+ .method() |
+ .property |
+ .method(); |
+>>> do not split leading properties in a chain |
+compiler.property.property.method().method().method(); |
+<<< |
+compiler.property.property |
+ .method() |
+ .method() |
+ .method(); |
+>>> do not split leading properties even if others splits |
+compiler.property.method().property.method(); |
+<<< |
+compiler.property |
+ .method() |
+ .property |
+ .method(); |
+>>> split between a pair of properties |
+avian.bovine.canine.equine.feline.piscine.orycteropodian.camelid; |
+<<< |
+avian.bovine.canine.equine.feline |
+ .piscine.orycteropodian.camelid; |
+>>> split before all properties if they don't fit on two lines |
+avian.bovine.canine.equine.feline.piscine.orycteropodian.camelid |
+.rangiferine; |
+<<< |
+avian |
+ .bovine |
+ .canine |
+ .equine |
+ .feline |
+ .piscine |
+ .orycteropodian |
+ .camelid |
+ .rangiferine; |
+>>> unsplit cascade unsplit method |
+object.method().method()..c()..c(); |
+<<< |
+object.method().method()..c()..c(); |
+>>> split cascade unsplit method |
+object.method().method()..cascade()..cascade(); |
+<<< |
+object.method().method() |
+ ..cascade() |
+ ..cascade(); |
+>>> unsplit cascade split method |
+object.method().method().method().method()..cascade()..cascade(); |
+<<< |
+object |
+ .method() |
+ .method() |
+ .method() |
+ .method()..cascade()..cascade(); |
+>>> split cascade split method |
+object.method().method().method().method()..cascade()..cascade()..cascade(); |
+<<< |
+object |
+ .method() |
+ .method() |
+ .method() |
+ .method() |
+ ..cascade() |
+ ..cascade() |
+ ..cascade(); |
+>>> cascade setters on method chain |
+object.method().method().method().method()..x=1..y=2; |
+<<< |
+object |
+ .method() |
+ .method() |
+ .method() |
+ .method() |
+ ..x = 1 |
+ ..y = 2; |
+>>> conditional invocation |
+object?.method().method()?.method().method(); |
+<<< |
+object |
+ ?.method() |
+ .method() |
+ ?.method() |
+ .method(); |