Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(186)

Side by Side Diff: lib/src/nesting_builder.dart

Issue 1255643002: New, simpler and faster line splitter. (Closed) Base URL: https://github.com/dart-lang/dart_style.git@master
Patch Set: Optimize nesting. Reformat. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/src/nesting.dart ('k') | lib/src/nesting_level.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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.nesting_builder; 5 library dart_style.src.nesting_builder;
6 6
7 import 'nesting.dart'; 7 import 'nesting_level.dart';
8 import 'whitespace.dart'; 8 import 'whitespace.dart';
9 9
10 /// Keeps track of expression nesting while the source code is being visited 10 /// Keeps track of expression nesting while the source code is being visited
11 /// and the chunks are being built. 11 /// and the chunks are being built.
12 class NestingBuilder { 12 class NestingBuilder {
13 /// The expression nesting levels and block indentation levels. 13 /// The expression nesting levels and block indentation levels.
14 /// 14 ///
15 /// This is tracked as a stack of [_IndentLevel]s. Each element in the stack 15 /// This is tracked as a stack of [_IndentLevel]s. Each element in the stack
16 /// represents a level of block indentation. It's stored as a stack because 16 /// represents a level of block indentation. It's stored as a stack because
17 /// expressions may contain blocks which in turn contain other expressions. 17 /// expressions may contain blocks which in turn contain other expressions.
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 /// block boundaries. 138 /// block boundaries.
139 class _IndentLevel { 139 class _IndentLevel {
140 /// The number of spaces of indentation at this level. 140 /// The number of spaces of indentation at this level.
141 final int indent; 141 final int indent;
142 142
143 /// The current expression nesting in this indentation level. 143 /// The current expression nesting in this indentation level.
144 NestingLevel nesting = new NestingLevel(); 144 NestingLevel nesting = new NestingLevel();
145 145
146 _IndentLevel(this.indent); 146 _IndentLevel(this.indent);
147 } 147 }
OLDNEW
« no previous file with comments | « lib/src/nesting.dart ('k') | lib/src/nesting_level.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698