Put conditional operators on the left.
R=pquitslund@google.com
Review URL: https://chromiumcodereview.appspot.com//846133002
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a893df7..2723445 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 0.1.2
+
+* Move split conditional operators to the beginning of the next line.
+
# 0.1.1
* Support formatting enums (#120).
diff --git a/lib/src/source_visitor.dart b/lib/src/source_visitor.dart
index 93fc466..c699bec 100644
--- a/lib/src/source_visitor.dart
+++ b/lib/src/source_visitor.dart
@@ -371,19 +371,21 @@
visitConditionalExpression(ConditionalExpression node) {
_writer.nestExpression();
visit(node.condition);
- space();
_writer.startSpan();
- token(node.question);
// If we split after one clause in a conditional, always split after both.
_writer.startMultisplit();
_writer.multisplit(nest: true, space: true);
+ token(node.question);
+ space();
+
visit(node.thenExpression);
- space();
- token(node.colon);
_writer.multisplit(nest: true, space: true);
+ token(node.colon);
+ space();
+
visit(node.elseExpression);
_writer.endMultisplit();
diff --git a/pubspec.yaml b/pubspec.yaml
index f26c7f7..1c89811 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
name: dart_style
-version: 0.1.1
+version: 0.1.2
author: Dart Team <misc@dartlang.org>
description: Opinionated, automatic Dart source code formatter.
homepage: https://github.com/dart-lang/dart_style
diff --git a/test/regression/112.stmt b/test/regression/112.stmt
index 0f8b7ce..3446a9f 100644
--- a/test/regression/112.stmt
+++ b/test/regression/112.stmt
@@ -5,9 +5,9 @@
something.field.where((i) => i is SomeClassGoesHere),
key: (i) => i.someField.name);
<<<
- var initializers = something == null ?
- {} :
- new Map.fromIterable(
+ var initializers = something == null
+ ? {}
+ : new Map.fromIterable(
something.field.where((i) => i is SomeClassGoesHere),
key: (i) => i.someField.name);
>>> (indent 4)
@@ -15,7 +15,7 @@
outputDir, uri, results.libraries, results.rules, formatOutput) :
new JSGenerator(outputDir, uri, results.libraries, results.rules);
<<<
- var cg = outputDart ?
- new DartGenerator(
- outputDir, uri, results.libraries, results.rules, formatOutput) :
- new JSGenerator(outputDir, uri, results.libraries, results.rules);
\ No newline at end of file
+ var cg = outputDart
+ ? new DartGenerator(
+ outputDir, uri, results.libraries, results.rules, formatOutput)
+ : new JSGenerator(outputDir, uri, results.libraries, results.rules);
\ No newline at end of file
diff --git a/test/regression/115.stmt b/test/regression/115.stmt
index 8843ed0..8afac52 100644
--- a/test/regression/115.stmt
+++ b/test/regression/115.stmt
@@ -24,6 +24,6 @@
// Indexing send-sets have an argument for the index.
(selector.isIndexSet ? 1 : 0) +
// Non-increment send-sets have one more argument.
- (ast.Operator.INCREMENT_OPERATORS.contains(op.source) ?
- 0 :
- 1) == node.argumentCount());
\ No newline at end of file
+ (ast.Operator.INCREMENT_OPERATORS.contains(op.source)
+ ? 0
+ : 1) == node.argumentCount());
\ No newline at end of file
diff --git a/test/regression/122.unit b/test/regression/122.unit
index b4a0794..376f0ef 100644
--- a/test/regression/122.unit
+++ b/test/regression/122.unit
@@ -5,11 +5,11 @@
defaults.xsrfCookieName] :
null;
<<<
-var xsrfValue = _urlIsSameOrigin(url) ?
- _cookies[xsrfCookieName != null ?
- xsrfCookieName :
- defaults.xsrfCookieName] :
- null;
+var xsrfValue = _urlIsSameOrigin(url)
+ ? _cookies[xsrfCookieName != null
+ ? xsrfCookieName
+ : defaults.xsrfCookieName]
+ : null;
>>>
class _Streams {
_Streams(this._scope, this._exceptionHandler, _Streams inheritStreams)
@@ -20,7 +20,7 @@
<<<
class _Streams {
_Streams(this._scope, this._exceptionHandler, _Streams inheritStreams)
- : _typeCounts = inheritStreams == null ?
- new HashMap<String, int>() :
- new HashMap.from(inheritStreams._typeCounts);
+ : _typeCounts = inheritStreams == null
+ ? new HashMap<String, int>()
+ : new HashMap.from(inheritStreams._typeCounts);
}
\ No newline at end of file
diff --git a/test/regression/44.stmt b/test/regression/44.stmt
index ad582a9..9532288 100644
--- a/test/regression/44.stmt
+++ b/test/regression/44.stmt
@@ -55,7 +55,7 @@
}
<<<
void main() {
- var xxxxxxxYyyyyyyy = aaaabbb ?
- CCCCCCCCCCCC.mmmmmmmmmmmmmmmmmm1(arg00000000000) :
- CCCCCCCCCCCC.mmmmmmmmmmmmmmmmmm(arg1111111111111);
+ var xxxxxxxYyyyyyyy = aaaabbb
+ ? CCCCCCCCCCCC.mmmmmmmmmmmmmmmmmm1(arg00000000000)
+ : CCCCCCCCCCCC.mmmmmmmmmmmmmmmmmm(arg1111111111111);
}
\ No newline at end of file
diff --git a/test/regression/45.stmt b/test/regression/45.stmt
index 071771b..de743a8 100644
--- a/test/regression/45.stmt
+++ b/test/regression/45.stmt
@@ -5,7 +5,7 @@
}
<<<
foo() {
- if (xxxxxxxxxxxxxxxx || xxxxxxxxxxxxxxxxxxxxx) return xxxxxxxxxxxxxx ?
- xxxxxxxxxxxxxxxxxxxx :
- xxxxxxxxxxxxxxxxxxxxxxxxxx;
+ if (xxxxxxxxxxxxxxxx || xxxxxxxxxxxxxxxxxxxxx) return xxxxxxxxxxxxxx
+ ? xxxxxxxxxxxxxxxxxxxx
+ : xxxxxxxxxxxxxxxxxxxxxxxxxx;
}
\ No newline at end of file
diff --git a/test/regression/80.unit b/test/regression/80.unit
index 0cafb9c..39199d8 100644
--- a/test/regression/80.unit
+++ b/test/regression/80.unit
@@ -40,32 +40,34 @@
<<<
void main(List argv) {
// This is ok (it moves the ? and : to the ends of the previous lines)
- var cg = outputDart ?
- new A(outputDir, uri, results.libraries, results.infoMap, results.rules,
- formatOutput) :
- new B(outputDir, uri, results.libraries, results.infoMap, results.rules);
+ var cg = outputDart
+ ? new A(outputDir, uri, results.libraries, results.infoMap, results.rules,
+ formatOutput)
+ : new B(
+ outputDir, uri, results.libraries, results.infoMap, results.rules);
// This gets rewritten to something much harder to read
// var cg = outputDart ?
// new ALongerClass(outputDir, uri, results.libraries, results.infoMap,
// results.rules, formatOutput) : new BLongerClass(
// outputDir, uri, results.libraries, results.infoMap, results.rules);
- var cg = outputDart ?
- new ALongerClass(outputDir, uri, results.libraries, results.infoMap,
- results.rules, formatOutput) :
- new BLongerClass(
+ var cg = outputDart
+ ? new ALongerClass(outputDir, uri, results.libraries, results.infoMap,
+ results.rules, formatOutput)
+ : new BLongerClass(
outputDir, uri, results.libraries, results.infoMap, results.rules);
// OK, left unchanged
- var cg = outputDart ?
- new A(outputDir, uri, results.libraries, results.infoMap, results.rules,
- formatOutput) :
- new B(outputDir, uri, results.libraries, results.infoMap, results.rules);
+ var cg = outputDart
+ ? new A(outputDir, uri, results.libraries, results.infoMap, results.rules,
+ formatOutput)
+ : new B(
+ outputDir, uri, results.libraries, results.infoMap, results.rules);
// Bad, as above
- var cg = outputDart ?
- new ALongerClass(outputDir, uri, results.libraries, results.infoMap,
- results.rules, formatOutput) :
- new BLongerClass(
+ var cg = outputDart
+ ? new ALongerClass(outputDir, uri, results.libraries, results.infoMap,
+ results.rules, formatOutput)
+ : new BLongerClass(
outputDir, uri, results.libraries, results.infoMap, results.rules);
}
\ No newline at end of file
diff --git a/test/splitting/expressions.stmt b/test/splitting/expressions.stmt
index 5564020..ed1f452 100644
--- a/test/splitting/expressions.stmt
+++ b/test/splitting/expressions.stmt
@@ -33,15 +33,15 @@
>>> split conditional because then doesn't fit
var kind = element != null ? longArgument : arg;
<<<
-var kind = element != null ?
- longArgument :
- arg;
+var kind = element != null
+ ? longArgument
+ : arg;
>>> split conditional because else doesn't fit
var kind = element != null ? argument : secondArgumentThatIsReallyLong;
<<<
-var kind = element != null ?
- argument :
- secondArgumentThatIsReallyLong;
+var kind = element != null
+ ? argument
+ : secondArgumentThatIsReallyLong;
>>> unsplit operator chains before and after block
first + second + () {body;} + third + fourth;
<<<
@@ -97,10 +97,10 @@
>>> conditional operands are nested
identifier ? identifier ? someParticularlyLongOperand : someParticularlyLongOperand : identifier ? someParticularlyLongOperand : someParticularlyLongOperand;
<<<
-identifier ?
- identifier ?
- someParticularlyLongOperand :
- someParticularlyLongOperand :
- identifier ?
- someParticularlyLongOperand :
- someParticularlyLongOperand;
\ No newline at end of file
+identifier
+ ? identifier
+ ? someParticularlyLongOperand
+ : someParticularlyLongOperand
+ : identifier
+ ? someParticularlyLongOperand
+ : someParticularlyLongOperand;
\ No newline at end of file