| 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();
|
| -}
|
|
|