| Index: packages/dart_style/test/splitting/mixed.stmt
|
| diff --git a/packages/dart_style/test/splitting/mixed.stmt b/packages/dart_style/test/splitting/mixed.stmt
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0ef02fd935a2615cf5849fa29e3f91ade716c971
|
| --- /dev/null
|
| +++ b/packages/dart_style/test/splitting/mixed.stmt
|
| @@ -0,0 +1,196 @@
|
| +40 columns |
|
| +>>> keeps map on one line if possible
|
| +sendPort.send({'type': 'error', 'error': 'oops'});
|
| +<<<
|
| +sendPort.send(
|
| + {'type': 'error', 'error': 'oops'});
|
| +>>> prefers to wrap before "."
|
| +new Future.sync(() => callback('msg')).then(
|
| + (result) => replyTo.send()).catchError((error) {});
|
| +<<<
|
| +new Future.sync(() => callback('msg'))
|
| + .then((result) => replyTo.send())
|
| + .catchError((error) {});
|
| +>>>
|
| +Stream readInput(AssetId id) => future((input) => input.read());
|
| +<<<
|
| +Stream readInput(AssetId id) =>
|
| + future((input) => input.read());
|
| +>>> nested expression indentation
|
| +someFunctionName(argument, argument, argument,
|
| + someOtherFunction(argument, argument, arg));
|
| +<<<
|
| +someFunctionName(
|
| + argument,
|
| + argument,
|
| + argument,
|
| + someOtherFunction(
|
| + argument, argument, arg));
|
| +>>> does not extra indent when multiple levels of nesting happen on one line
|
| +someFunctionName(argument, argument, argument,
|
| + some(other(function(argument, argument, arg))));
|
| +<<<
|
| +someFunctionName(
|
| + argument,
|
| + argument,
|
| + argument,
|
| + some(other(function(
|
| + argument, argument, arg))));
|
| +>>> forces extra indent and lines, if later line needs it
|
| +callSomeMethod(innerFunction(argument, argument, argument), argument, argument, argument);
|
| +<<<
|
| +callSomeMethod(
|
| + innerFunction(
|
| + argument, argument, argument),
|
| + argument,
|
| + argument,
|
| + argument);
|
| +>>> function inside a collection
|
| +[item, obj.method(argument).method(argument).method(() {body;}).another().another()];
|
| +<<<
|
| +[
|
| + item,
|
| + obj
|
| + .method(argument)
|
| + .method(argument)
|
| + .method(() {
|
| + body;
|
| + }).another().another()
|
| +];
|
| +>>> function inside an argument list
|
| +function(argument, obj.method(argument).method(argument).method(() {body;}).another().another());
|
| +<<<
|
| +function(
|
| + argument,
|
| + obj
|
| + .method(argument)
|
| + .method(argument)
|
| + .method(() {
|
| + body;
|
| + }).another().another());
|
| +>>> unnested function inside nested expression
|
| +function(argument, function(() {;}));
|
| +<<<
|
| +function(argument, function(() {
|
| + ;
|
| +}));
|
| +>>> nested function inside nested expression
|
| +function(argument, function(() {;}, argument, () {;}));
|
| +<<<
|
| +function(
|
| + argument,
|
| + function(
|
| + () {
|
| + ;
|
| + },
|
| + argument,
|
| + () {
|
| + ;
|
| + }));
|
| +>>> wrap before =>
|
| +receiver.firstMethod().next((parameter) => longIdentifier == veryLongIdentifier);
|
| +<<<
|
| +receiver.firstMethod().next(
|
| + (parameter) => longIdentifier ==
|
| + veryLongIdentifier);
|
| +>>> wrap after =>
|
| +receiver.firstMethod().next(() => veryveryveryverylongIdentifier == veryLongIdentifier);
|
| +<<<
|
| +receiver.firstMethod().next(() =>
|
| + veryveryveryverylongIdentifier ==
|
| + veryLongIdentifier);
|
| +>>> wrap at nested binary operator
|
| +receiver.firstMethod().next(longIdentifier == veryLongIdentifier);
|
| +<<<
|
| +receiver.firstMethod().next(
|
| + longIdentifier ==
|
| + veryLongIdentifier);
|
| +>>> list inside method chain
|
| +receiver.first([listItem, secondItem, thirdItem]).second();
|
| +<<<
|
| +receiver.first([
|
| + listItem,
|
| + secondItem,
|
| + thirdItem
|
| +]).second();
|
| +>>> list at end of method chain
|
| +receiver.first().second([listItem, secondItem, thirdItem, fourthItem]);
|
| +<<<
|
| +receiver.first().second([
|
| + listItem,
|
| + secondItem,
|
| + thirdItem,
|
| + fourthItem
|
| +]);
|
| +>>> binary operators in ascending precedence
|
| +{
|
| + b___________________ || a______________ && a______________ == a______________ > a______________ + a______________;
|
| +}
|
| +<<<
|
| +{
|
| + b___________________ ||
|
| + a______________ &&
|
| + a______________ ==
|
| + a______________ >
|
| + a______________ +
|
| + a______________;
|
| +}
|
| +>>> binary operators in descending precedence
|
| +{
|
| + b___________________ + a______________ > a______________ == a______________ && a______________ || a______________;
|
| +}
|
| +<<<
|
| +{
|
| + b___________________ +
|
| + a______________ >
|
| + a______________ ==
|
| + a______________ &&
|
| + a______________ ||
|
| + a______________;
|
| +}
|
| +>>> mixed multiplicative operators
|
| +longName * longName / longName % longName ~/ longName;
|
| +<<<
|
| +longName *
|
| + longName /
|
| + longName %
|
| + longName ~/
|
| + longName;
|
| +>>> mixed additive operators
|
| +longName + longName - longName + longName - longName;
|
| +<<<
|
| +longName +
|
| + longName -
|
| + longName +
|
| + longName -
|
| + longName;
|
| +>>> mixed shift operators
|
| +longName >> longName << longName >> longName << longName;
|
| +<<<
|
| +longName >>
|
| + longName <<
|
| + longName >>
|
| + longName <<
|
| + longName;
|
| +>>> mixture of same and different precedence
|
| +veryLongIdentifier + veryLongIdentifier / veryLongIdentifier *
|
| +veryLongIdentifier - veryLongIdentifier * veryLongIdentifier +
|
| +veryLongIdentifier / veryLongIdentifier - veryLongIdentifier;
|
| +<<<
|
| +veryLongIdentifier +
|
| + veryLongIdentifier /
|
| + veryLongIdentifier *
|
| + veryLongIdentifier -
|
| + veryLongIdentifier *
|
| + veryLongIdentifier +
|
| + veryLongIdentifier /
|
| + veryLongIdentifier -
|
| + veryLongIdentifier;
|
| +>>> choose extra nesting if it leads to better solution
|
| +longIdentifier +
|
| + (longIdentifier ? 0 :
|
| + 1) == identifier;
|
| +<<<
|
| +longIdentifier +
|
| + (longIdentifier ? 0 : 1) ==
|
| + identifier;
|
|
|