Index: tests/try/poi/source_update.dart |
diff --git a/tests/try/poi/source_update.dart b/tests/try/poi/source_update.dart |
deleted file mode 100644 |
index 95ea1d18ce5239dead68d95df91c32355ed3da5d..0000000000000000000000000000000000000000 |
--- a/tests/try/poi/source_update.dart |
+++ /dev/null |
@@ -1,154 +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 trydart.source_update; |
- |
-/// Returns [updates] expanded to full compilation units/source files. |
-/// |
-/// [updates] is a convenient way to write updates/patches to a single source |
-/// file without repeating common parts. |
-/// |
-/// For example: |
-/// ["head ", ["v1", "v2"], " tail"] |
-/// expands to: |
-/// ["head v1 tail", "head v2 tail"] |
-List<String> expandUpdates(List updates) { |
- int outputCount = updates.firstWhere((e) => e is Iterable).length; |
- List<StringBuffer> result = new List<StringBuffer>(outputCount); |
- for (int i = 0; i < outputCount; i++) { |
- result[i] = new StringBuffer(); |
- } |
- for (var chunk in updates) { |
- if (chunk is Iterable) { |
- int segmentCount = 0; |
- for (var segment in chunk) { |
- result[segmentCount++].write(segment); |
- } |
- if (segmentCount != outputCount) { |
- throw new ArgumentError( |
- "Expected ${outputCount} segments, " |
- "but found ${segmentCount} in $chunk"); |
- } |
- } else { |
- for (StringBuffer buffer in result) { |
- buffer.write(chunk); |
- } |
- } |
- } |
- |
- return result.map((e) => '$e').toList(); |
-} |
- |
-/// Returns [files] split into multiple named files. The keys in the returned |
-/// map are filenames, the values are the files' content. |
-/// |
-/// Names are indicated by a line on the form "==> filename <==". Spaces are |
-/// significant. For example, given this input: |
-/// |
-/// ==> file1.dart <== |
-/// First line of file 1. |
-/// Second line of file 1. |
-/// Third line of file 1. |
-/// ==> empty.dart <== |
-/// ==> file2.dart <== |
-/// First line of file 2. |
-/// Second line of file 2. |
-/// Third line of file 2. |
-/// |
-/// This function would return: |
-/// |
-/// { |
-/// "file1.dart": """ |
-/// First line of file 1. |
-/// Second line of file 1. |
-/// Third line of file 1. |
-/// """, |
-/// |
-/// "empty.dart":"", |
-/// |
-/// "file2.dart":""" |
-/// First line of file 2. |
-/// Second line of file 2. |
-/// Third line of file 2. |
-/// """ |
-/// } |
-Map<String, String> splitFiles(String files) { |
- Map<String, String> result = <String, String>{}; |
- String currentName; |
- List<String> content; |
- void finishFile() { |
- if (currentName != null) { |
- if (result.containsKey(currentName)) { |
- throw new ArgumentError("Duplicated filename $currentName in $files"); |
- } |
- result[currentName] = content.join(''); |
- } |
- content = null; |
- } |
- void processDirective(String line) { |
- finishFile(); |
- if (line.length < 8 || !line.endsWith(" <==\n")) { |
- throw new ArgumentError( |
- "Malformed line: expected '==> ... <==', but got: '$line'"); |
- } |
- currentName = line.substring(4, line.length - 5); |
- content = <String>[]; |
- } |
- for (String line in splitLines(files)) { |
- if (line.startsWith("==>")) { |
- processDirective(line); |
- } else { |
- content.add(line); |
- } |
- } |
- finishFile(); |
- return result; |
-} |
- |
-/// Split [text] into lines preserving trailing newlines (unlike |
-/// String.split("\n"). Also, if [text] is empty, return an empty list (unlike |
-/// String.split("\n")). |
-List<String> splitLines(String text) { |
- return text.split(new RegExp('^', multiLine: true)); |
-} |
- |
-/// Expand a file with diffs in common merge conflict format into a [List] that |
-/// can be passed to [expandUpdates]. |
-/// |
-/// For example: |
-/// first |
-/// <<<<<<< |
-/// v1 |
-/// ======= |
-/// v2 |
-/// ======= |
-/// v3 |
-/// >>>>>>> |
-/// last |
-/// |
-/// Would be expanded to something equivalent to: |
-/// |
-/// ["first\n", ["v1\n", "v2\n", "v3\n"], "last\n"] |
-List expandDiff(String text) { |
- List result = [new StringBuffer()]; |
- bool inDiff = false; |
- for (String line in splitLines(text)) { |
- if (inDiff) { |
- if (line.startsWith("=======")) { |
- result.last.add(new StringBuffer()); |
- } else if (line.startsWith(">>>>>>>")) { |
- inDiff = false; |
- result.add(new StringBuffer()); |
- } else { |
- result.last.last.write(line); |
- } |
- } else if (line.startsWith("<<<<<<<")) { |
- inDiff = true; |
- result.add(<StringBuffer>[new StringBuffer()]); |
- } else { |
- result.last.write(line); |
- } |
- } |
- return result; |
-} |