Index: pkg/analyzer_experimental/lib/src/services/writer.dart |
diff --git a/pkg/analyzer_experimental/lib/src/services/writer.dart b/pkg/analyzer_experimental/lib/src/services/writer.dart |
deleted file mode 100644 |
index d7f8fd3e8dced61efd1412c8a43297720a9523d5..0000000000000000000000000000000000000000 |
--- a/pkg/analyzer_experimental/lib/src/services/writer.dart |
+++ /dev/null |
@@ -1,202 +0,0 @@ |
-// Copyright (c) 2013, 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_writer; |
- |
- |
-class Line { |
- |
- final int lineLength; |
- final tokens = <LineToken>[]; |
- final bool useTabs; |
- final int spacesPerIndent; |
- |
- Line({indent: 0, this.lineLength: 80, this.useTabs: false, |
- this.spacesPerIndent: 2}) { |
- if (indent > 0) { |
- _indent(indent); |
- } |
- } |
- |
- void addSpace() { |
- addSpaces(1); |
- } |
- |
- void addSpaces(int n) { |
- if (n > 0) { |
- tokens.add(new SpaceToken(n)); |
- } |
- } |
- |
- void addToken(LineToken token) { |
- tokens.add(token); |
- } |
- |
- bool isWhitespace() => tokens.every((tok) => tok is SpaceToken); |
- |
- void _indent(int n) { |
- tokens.add(useTabs ? new TabToken(n) : new SpaceToken(n * spacesPerIndent)); |
- } |
- |
- String toString() { |
- var buffer = new StringBuffer(); |
- tokens.forEach((tok) => buffer.write(tok.toString())); |
- return buffer.toString(); |
- } |
- |
-} |
- |
- |
-class LineToken { |
- |
- final String value; |
- |
- LineToken(this.value); |
- |
- String toString() => value; |
-} |
- |
-class SpaceToken extends LineToken { |
- |
- SpaceToken(int n) : super(getSpaces(n)); |
-} |
- |
-class TabToken extends LineToken { |
- |
- TabToken(int n) : super(getTabs(n)); |
-} |
- |
- |
-class NewlineToken extends LineToken { |
- |
- NewlineToken(String value) : super(value); |
-} |
- |
- |
- |
-class SourceWriter { |
- |
- final StringBuffer buffer = new StringBuffer(); |
- Line currentLine; |
- |
- final String lineSeparator; |
- int indentCount = 0; |
- |
- LineToken _lastToken; |
- |
- SourceWriter({this.indentCount: 0, this.lineSeparator: NEW_LINE}) { |
- currentLine = new Line(indent: indentCount); |
- } |
- |
- LineToken get lastToken => _lastToken; |
- |
- _addToken(LineToken token) { |
- _lastToken = token; |
- currentLine.addToken(token); |
- } |
- |
- void indent() { |
- ++indentCount; |
- } |
- |
- void newline() { |
- if (currentLine.isWhitespace()) { |
- currentLine.tokens.clear(); |
- } |
- _addToken(new NewlineToken(this.lineSeparator)); |
- buffer.write(currentLine.toString()); |
- currentLine = new Line(indent: indentCount); |
- } |
- |
- void newlines(int num) { |
- while (num-- > 0) { |
- newline(); |
- } |
- } |
- |
- void print(x) { |
- _addToken(new LineToken(x)); |
- } |
- |
- void println(String s) { |
- print(s); |
- newline(); |
- } |
- |
- void space() { |
- spaces(1); |
- } |
- |
- void spaces(n) { |
- currentLine.addSpaces(n); |
- } |
- |
- void unindent() { |
- --indentCount; |
- } |
- |
- String toString() { |
- var source = new StringBuffer(buffer.toString()); |
- if (!currentLine.isWhitespace()) { |
- source.write(currentLine); |
- } |
- return source.toString(); |
- } |
- |
-} |
- |
-const NEW_LINE = '\n'; |
-const SPACE = ' '; |
-const SPACES = const [ |
- '', |
- ' ', |
- ' ', |
- ' ', |
- ' ', |
- ' ', |
- ' ', |
- ' ', |
- ' ', |
- ' ', |
- ' ', |
- ' ', |
- ' ', |
- ' ', |
- ' ', |
- ' ', |
- ' ', |
-]; |
-const TABS = const [ |
- '', |
- '\t', |
- '\t\t', |
- '\t\t\t', |
- '\t\t\t\t', |
- '\t\t\t\t\t', |
- '\t\t\t\t\t\t', |
- '\t\t\t\t\t\t\t', |
- '\t\t\t\t\t\t\t\t', |
- '\t\t\t\t\t\t\t\t\t', |
- '\t\t\t\t\t\t\t\t\t\t', |
- '\t\t\t\t\t\t\t\t\t\t\t', |
- '\t\t\t\t\t\t\t\t\t\t\t\t', |
- '\t\t\t\t\t\t\t\t\t\t\t\t\t', |
- '\t\t\t\t\t\t\t\t\t\t\t\t\t\t', |
-]; |
- |
- |
-String getIndentString(int indentWidth, {bool useTabs: false}) => |
- useTabs ? getTabs(indentWidth) : getSpaces(indentWidth); |
- |
-String getSpaces(int n) => n < SPACES.length ? SPACES[n] : repeat(' ', n); |
- |
-String getTabs(int n) => n < TABS.length ? TABS[n] : repeat('\t', n); |
- |
-String repeat(String ch, int times) { |
- var sb = new StringBuffer(); |
- for (var i = 0; i < times; ++i) { |
- sb.write(ch); |
- } |
- return sb.toString(); |
-} |