| 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(); |