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

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

Issue 1000513002: Tweak formatting rules. Fix #211. (Closed) Base URL: https://github.com/dart-lang/dart_style.git@master
Patch Set: Update changelog. Created 5 years, 9 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 | « CHANGELOG.md ('k') | lib/src/line_writer.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) 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; 5 library dart_style.src.chunk;
6 6
7 import 'debug.dart'; 7 import 'debug.dart';
8 8
9 /// Tracks where a selection start or end point may appear in some piece of 9 /// Tracks where a selection start or end point may appear in some piece of
10 /// text. 10 /// text.
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 /// most desirable. 223 /// most desirable.
224 class Cost { 224 class Cost {
225 /// The smallest cost. 225 /// The smallest cost.
226 /// 226 ///
227 /// This isn't zero because we want to ensure all splitting has *some* cost, 227 /// This isn't zero because we want to ensure all splitting has *some* cost,
228 /// otherwise, the formatter won't try to keep things on one line at all. 228 /// otherwise, the formatter won't try to keep things on one line at all.
229 /// Almost all splits and spans use this. Greater costs tend to come from a 229 /// Almost all splits and spans use this. Greater costs tend to come from a
230 /// greater number of nested spans. 230 /// greater number of nested spans.
231 static const normal = 1; 231 static const normal = 1;
232 232
233 /// The cost of splitting after a "=" both for assignment and initialization. 233 /// Splitting after a "=" both for assignment and initialization.
234 static const assignment = 2; 234 static const assignment = 2;
235 235
236 /// Splitting before the first argument when it happens to be a function
237 /// expression with a block body.
238 static const firstBlockArgument = 2;
239
240 /// The series of positional arguments.
241 static const positionalArguments = 2;
242
243 /// Splitting inside the brackets of a list with only one element.
244 static const singleElementList = 2;
245
236 /// The cost of a single character that goes past the page limit. 246 /// The cost of a single character that goes past the page limit.
237 /// 247 ///
238 /// This cost is high to ensure any solution that fits in the page is 248 /// This cost is high to ensure any solution that fits in the page is
239 /// preferred over one that does not. 249 /// preferred over one that does not.
240 static const overflowChar = 1000; 250 static const overflowChar = 1000;
241 } 251 }
242 252
243 /// Controls whether or not one or more soft split [Chunk]s are split. 253 /// Controls whether or not one or more soft split [Chunk]s are split.
244 /// 254 ///
245 /// When [LineSplitter] tries to split a line to fit within its page width, it 255 /// When [LineSplitter] tries to split a line to fit within its page width, it
(...skipping 14 matching lines...) Expand all
260 final int cost; 270 final int cost;
261 271
262 /// The other [SplitParam]s that are "implied" by this one. 272 /// The other [SplitParam]s that are "implied" by this one.
263 /// 273 ///
264 /// Implication means that if the splitter chooses to split this param, it 274 /// Implication means that if the splitter chooses to split this param, it
265 /// must also split all of its implied ones (transitively). Implication is 275 /// must also split all of its implied ones (transitively). Implication is
266 /// one-way. If A implies B, it's fine to split B without splitting A. 276 /// one-way. If A implies B, it's fine to split B without splitting A.
267 final implies = <SplitParam>[]; 277 final implies = <SplitParam>[];
268 278
269 /// Creates a new [SplitParam]. 279 /// Creates a new [SplitParam].
270 SplitParam([this.cost = Cost.normal]); 280 SplitParam([int cost])
281 : cost = cost != null ? cost : Cost.normal;
271 282
272 String toString() => "$id"; 283 String toString() => "$id";
273 284
274 int get hashCode => id.hashCode; 285 int get hashCode => id.hashCode;
275 286
276 bool operator ==(other) => identical(this, other); 287 bool operator ==(other) => identical(this, other);
277 } 288 }
278 289
279 /// Delimits a range of chunks that must end up on the same line to avoid an 290 /// Delimits a range of chunks that must end up on the same line to avoid an
280 /// additional cost. 291 /// additional cost.
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 /// Whether this comment starts at column one in the source. 363 /// Whether this comment starts at column one in the source.
353 /// 364 ///
354 /// Comments that start at the start of the line will not be indented in the 365 /// Comments that start at the start of the line will not be indented in the
355 /// output. This way, commented out chunks of code do not get erroneously 366 /// output. This way, commented out chunks of code do not get erroneously
356 /// re-indented. 367 /// re-indented.
357 final bool isStartOfLine; 368 final bool isStartOfLine;
358 369
359 SourceComment(this.text, this.linesBefore, 370 SourceComment(this.text, this.linesBefore,
360 {this.isLineComment, this.isStartOfLine}); 371 {this.isLineComment, this.isStartOfLine});
361 } 372 }
OLDNEW
« no previous file with comments | « CHANGELOG.md ('k') | lib/src/line_writer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698