| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library dart_style.src.source_visitor; | 5 library dart_style.src.source_visitor; |
| 6 | 6 |
| 7 import 'package:analyzer/analyzer.dart'; | 7 import 'package:analyzer/analyzer.dart'; |
| 8 import 'package:analyzer/src/generated/scanner.dart'; | 8 import 'package:analyzer/src/generated/scanner.dart'; |
| 9 import 'package:analyzer/src/generated/source.dart'; | 9 import 'package:analyzer/src/generated/source.dart'; |
| 10 | 10 |
| (...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 300 builder.startBlockArgumentNesting(); | 300 builder.startBlockArgumentNesting(); |
| 301 | 301 |
| 302 // If the cascade sections have consistent names they can be broken | 302 // If the cascade sections have consistent names they can be broken |
| 303 // normally otherwise they always get their own line. | 303 // normally otherwise they always get their own line. |
| 304 if (_allowInlineCascade(node.cascadeSections)) { | 304 if (_allowInlineCascade(node.cascadeSections)) { |
| 305 builder.startRule(); | 305 builder.startRule(); |
| 306 zeroSplit(); | 306 zeroSplit(); |
| 307 visitNodes(node.cascadeSections, between: zeroSplit); | 307 visitNodes(node.cascadeSections, between: zeroSplit); |
| 308 builder.endRule(); | 308 builder.endRule(); |
| 309 } else { | 309 } else { |
| 310 builder.startRule(new HardSplitRule()); | 310 builder.startRule(new Rule.hard()); |
| 311 zeroSplit(); | 311 zeroSplit(); |
| 312 visitNodes(node.cascadeSections, between: zeroSplit); | 312 visitNodes(node.cascadeSections, between: zeroSplit); |
| 313 builder.endRule(); | 313 builder.endRule(); |
| 314 } | 314 } |
| 315 | 315 |
| 316 builder.endBlockArgumentNesting(); | 316 builder.endBlockArgumentNesting(); |
| 317 builder.unnest(); | 317 builder.unnest(); |
| 318 | 318 |
| 319 if (node.target is MethodInvocation) builder.unnest(); | 319 if (node.target is MethodInvocation) builder.unnest(); |
| 320 } | 320 } |
| (...skipping 1399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1720 // level when they are actually unrelated. Splitting at "=>" forces: | 1720 // level when they are actually unrelated. Splitting at "=>" forces: |
| 1721 // | 1721 // |
| 1722 // someFunction(parameter, | 1722 // someFunction(parameter, |
| 1723 // parameter) => | 1723 // parameter) => |
| 1724 // function( | 1724 // function( |
| 1725 // argument); | 1725 // argument); |
| 1726 if (body is ExpressionFunctionBody) { | 1726 if (body is ExpressionFunctionBody) { |
| 1727 builder.nestExpression(); | 1727 builder.nestExpression(); |
| 1728 | 1728 |
| 1729 // This rule is ended by visitExpressionFunctionBody(). | 1729 // This rule is ended by visitExpressionFunctionBody(). |
| 1730 builder.startLazyRule(new SimpleRule(Cost.arrow)); | 1730 builder.startLazyRule(new Rule(Cost.arrow)); |
| 1731 } | 1731 } |
| 1732 | 1732 |
| 1733 if (parameters != null) { | 1733 if (parameters != null) { |
| 1734 builder.nestExpression(); | 1734 builder.nestExpression(); |
| 1735 visit(parameters); | 1735 visit(parameters); |
| 1736 builder.unnest(); | 1736 builder.unnest(); |
| 1737 | 1737 |
| 1738 if (afterParameters != null) afterParameters(); | 1738 if (afterParameters != null) afterParameters(); |
| 1739 } | 1739 } |
| 1740 | 1740 |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1821 } | 1821 } |
| 1822 | 1822 |
| 1823 // Add this collection to the stack. | 1823 // Add this collection to the stack. |
| 1824 _collectionSplits.add(false); | 1824 _collectionSplits.add(false); |
| 1825 | 1825 |
| 1826 _startLiteralBody(leftBracket); | 1826 _startLiteralBody(leftBracket); |
| 1827 | 1827 |
| 1828 // Always use a hard rule to split the elements. The parent chunk of | 1828 // Always use a hard rule to split the elements. The parent chunk of |
| 1829 // the collection will handle the unsplit case, so this only comes | 1829 // the collection will handle the unsplit case, so this only comes |
| 1830 // into play when the collection is split. | 1830 // into play when the collection is split. |
| 1831 var rule = new HardSplitRule(); | 1831 var rule = new Rule.hard(); |
| 1832 builder.startRule(rule); | 1832 builder.startRule(rule); |
| 1833 | 1833 |
| 1834 // If a collection contains a line comment, we assume it's a big complex | 1834 // If a collection contains a line comment, we assume it's a big complex |
| 1835 // blob of data with some documented structure. In that case, the user | 1835 // blob of data with some documented structure. In that case, the user |
| 1836 // probably broke the elements into lines deliberately, so preserve those. | 1836 // probably broke the elements into lines deliberately, so preserve those. |
| 1837 var preserveNewlines = _containsLineComments(elements, rightBracket); | 1837 var preserveNewlines = _containsLineComments(elements, rightBracket); |
| 1838 | 1838 |
| 1839 for (var element in elements) { | 1839 for (var element in elements) { |
| 1840 if (element != elements.first) { | 1840 if (element != elements.first) { |
| 1841 if (preserveNewlines) { | 1841 if (preserveNewlines) { |
| (...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2111 /// Returns the chunk the split was applied to. | 2111 /// Returns the chunk the split was applied to. |
| 2112 Chunk split() => builder.split(space: true); | 2112 Chunk split() => builder.split(space: true); |
| 2113 | 2113 |
| 2114 /// Writes a zero-space split owned by the current rule. | 2114 /// Writes a zero-space split owned by the current rule. |
| 2115 /// | 2115 /// |
| 2116 /// Returns the chunk the split was applied to. | 2116 /// Returns the chunk the split was applied to. |
| 2117 Chunk zeroSplit() => builder.split(); | 2117 Chunk zeroSplit() => builder.split(); |
| 2118 | 2118 |
| 2119 /// Writes a single space split with its own rule. | 2119 /// Writes a single space split with its own rule. |
| 2120 void soloSplit([int cost]) { | 2120 void soloSplit([int cost]) { |
| 2121 builder.startRule(new SimpleRule(cost)); | 2121 builder.startRule(new Rule(cost)); |
| 2122 split(); | 2122 split(); |
| 2123 builder.endRule(); | 2123 builder.endRule(); |
| 2124 } | 2124 } |
| 2125 | 2125 |
| 2126 /// Writes a zero-space split with its own rule. | 2126 /// Writes a zero-space split with its own rule. |
| 2127 void soloZeroSplit() { | 2127 void soloZeroSplit() { |
| 2128 builder.startRule(); | 2128 builder.startRule(); |
| 2129 builder.split(); | 2129 builder.split(); |
| 2130 builder.endRule(); | 2130 builder.endRule(); |
| 2131 } | 2131 } |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2332 /// Gets the 1-based line number that the beginning of [token] lies on. | 2332 /// Gets the 1-based line number that the beginning of [token] lies on. |
| 2333 int _startLine(Token token) => _lineInfo.getLocation(token.offset).lineNumber; | 2333 int _startLine(Token token) => _lineInfo.getLocation(token.offset).lineNumber; |
| 2334 | 2334 |
| 2335 /// Gets the 1-based line number that the end of [token] lies on. | 2335 /// Gets the 1-based line number that the end of [token] lies on. |
| 2336 int _endLine(Token token) => _lineInfo.getLocation(token.end).lineNumber; | 2336 int _endLine(Token token) => _lineInfo.getLocation(token.end).lineNumber; |
| 2337 | 2337 |
| 2338 /// Gets the 1-based column number that the beginning of [token] lies on. | 2338 /// Gets the 1-based column number that the beginning of [token] lies on. |
| 2339 int _startColumn(Token token) => | 2339 int _startColumn(Token token) => |
| 2340 _lineInfo.getLocation(token.offset).columnNumber; | 2340 _lineInfo.getLocation(token.offset).columnNumber; |
| 2341 } | 2341 } |
| OLD | NEW |