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

Unified Diff: source_span/lib/src/span.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « source_span/lib/src/location_mixin.dart ('k') | source_span/lib/src/span_exception.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: source_span/lib/src/span.dart
diff --git a/source_span/lib/src/span.dart b/source_span/lib/src/span.dart
deleted file mode 100644
index 9f150482c6da354adbbad9753a12a306b4bf432c..0000000000000000000000000000000000000000
--- a/source_span/lib/src/span.dart
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library source_span.span;
-
-import 'location.dart';
-import 'span_mixin.dart';
-
-/// A class that describes a segment of source text.
-abstract class SourceSpan implements Comparable<SourceSpan> {
- /// The start location of this span.
- final SourceLocation start;
-
- /// The end location of this span, exclusive.
- final SourceLocation end;
-
- /// The source text for this span.
- final String text;
-
- /// The URL of the source (typically a file) of this span.
- ///
- /// This may be null, indicating that the source URL is unknown or
- /// unavailable.
- final Uri sourceUrl;
-
- /// The length of this span, in characters.
- final int length;
-
- /// Creates a new span from [start] to [end] (exclusive) containing [text].
- ///
- /// [start] and [end] must have the same source URL and [start] must come
- /// before [end]. [text] must have a number of characters equal to the
- /// distance between [start] and [end].
- factory SourceSpan(SourceLocation start, SourceLocation end, String text) =>
- new SourceSpanBase(start, end, text);
-
- /// Creates a new span that's the union of [this] and [other].
- ///
- /// The two spans must have the same source URL and may not be disjoint.
- /// [text] is computed by combining [this.text] and [other.text].
- SourceSpan union(SourceSpan other);
-
- /// Compares two spans.
- ///
- /// [other] must have the same source URL as [this]. This orders spans by
- /// [start] then [length].
- int compareTo(SourceSpan other);
-
- /// Formats [message] in a human-friendly way associated with this span.
- ///
- /// [color] may either be a [String], a [bool], or `null`. If it's a string,
- /// it indicates an ANSII terminal color escape that should be used to
- /// highlight the span's text. If it's `true`, it indicates that the text
- /// should be highlighted using the default color. If it's `false` or `null`,
- /// it indicates that the text shouldn't be highlighted.
- String message(String message, {color});
-}
-
-/// A base class for source spans with [start], [end], and [text] known at
-/// construction time.
-class SourceSpanBase extends SourceSpanMixin {
- final SourceLocation start;
- final SourceLocation end;
- final String text;
-
- SourceSpanBase(this.start, this.end, this.text) {
- if (end.sourceUrl != start.sourceUrl) {
- throw new ArgumentError("Source URLs \"${start.sourceUrl}\" and "
- " \"${end.sourceUrl}\" don't match.");
- } else if (end.offset < start.offset) {
- throw new ArgumentError('End $end must come after start $start.');
- } else if (text.length != start.distance(end)) {
- throw new ArgumentError('Text "$text" must be ${start.distance(end)} '
- 'characters long.');
- }
- }
-}
« no previous file with comments | « source_span/lib/src/location_mixin.dart ('k') | source_span/lib/src/span_exception.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698