| 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.chunk_builder; | 5 library dart_style.src.chunk_builder; |
| 6 | 6 |
| 7 import 'chunk.dart'; | 7 import 'chunk.dart'; |
| 8 import 'dart_formatter.dart'; | 8 import 'dart_formatter.dart'; |
| 9 import 'debug.dart' as debug; | 9 import 'debug.dart' as debug; |
| 10 import 'line_writer.dart'; | 10 import 'line_writer.dart'; |
| (...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 504 | 504 |
| 505 if (chunk.isHardSplit && chunk.rule != ignoredSplit) { | 505 if (chunk.isHardSplit && chunk.rule != ignoredSplit) { |
| 506 forceSplit = true; | 506 forceSplit = true; |
| 507 break; | 507 break; |
| 508 } | 508 } |
| 509 } | 509 } |
| 510 } | 510 } |
| 511 | 511 |
| 512 // If there is a hard newline within the block, force the surrounding rule | 512 // If there is a hard newline within the block, force the surrounding rule |
| 513 // for it so that we apply that constraint. | 513 // for it so that we apply that constraint. |
| 514 // TODO(rnystrom): This does the wrong thing when there is are multiple | |
| 515 // block arguments. We correctly force the rule, but then it gets popped | |
| 516 // off the writer's stack and it forgets it was forced. Can repro with: | |
| 517 // | |
| 518 // longFunctionName( | |
| 519 // [longElementName, longElementName, longElementName], | |
| 520 // [short]); | |
| 521 if (forceSplit) _parent.forceRules(); | 514 if (forceSplit) _parent.forceRules(); |
| 522 | 515 |
| 523 // Write the split for the block contents themselves. | 516 // Write the split for the block contents themselves. |
| 524 _parent._writeSplit(_parent._rules.last, _parent._blockArgumentNesting.last, | 517 _parent._writeSplit(_parent._rules.last, _parent._blockArgumentNesting.last, |
| 525 flushLeft: _firstFlushLeft); | 518 flushLeft: _firstFlushLeft); |
| 526 return _parent; | 519 return _parent; |
| 527 } | 520 } |
| 528 | 521 |
| 529 /// Finishes writing and returns a [SourceCode] containing the final output | 522 /// Finishes writing and returns a [SourceCode] containing the final output |
| 530 /// and updated selection, if any. | 523 /// and updated selection, if any. |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 794 } | 787 } |
| 795 | 788 |
| 796 // Harden every chunk that uses one of these rules. | 789 // Harden every chunk that uses one of these rules. |
| 797 for (var chunk in _chunks) { | 790 for (var chunk in _chunks) { |
| 798 if (hardenedRules.contains(chunk.rule)) { | 791 if (hardenedRules.contains(chunk.rule)) { |
| 799 chunk.harden(); | 792 chunk.harden(); |
| 800 } | 793 } |
| 801 } | 794 } |
| 802 } | 795 } |
| 803 } | 796 } |
| OLD | NEW |