| OLD | NEW |
| (Empty) | |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| 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. |
| 4 |
| 5 #library('test_utils'); |
| 6 |
| 7 /** |
| 8 * Removes eight spaces of leading indentation from a multiline string. |
| 9 * |
| 10 * Note that this is very sensitive to how the literals are styled. They should |
| 11 * be: |
| 12 * ''' |
| 13 * Text starts on own line. Lines up with subsequent lines. |
| 14 * Lines are indented exactly 8 characters from the left margin. |
| 15 * Close is on the same line.''' |
| 16 * |
| 17 * This does nothing if text is only a single line. |
| 18 */ |
| 19 // TODO(nweiz): Make this auto-detect the indentation level from the first |
| 20 // non-whitespace line. |
| 21 String cleanUpLiteral(String text) { |
| 22 var lines = text.split('\n'); |
| 23 if (lines.length <= 1) return text; |
| 24 |
| 25 for (var j = 0; j < lines.length; j++) { |
| 26 if (lines[j].length > 8) { |
| 27 lines[j] = lines[j].substring(8, lines[j].length); |
| 28 } else { |
| 29 lines[j] = ''; |
| 30 } |
| 31 } |
| 32 |
| 33 return Strings.join(lines, '\n'); |
| 34 } |
| 35 |
| 36 /** |
| 37 * Indents each line of [text] so that, when passed to [cleanUpLiteral], it will |
| 38 * produce output identical to [text]. |
| 39 * |
| 40 * This is useful for literals that need to include newlines but can't be |
| 41 * conveniently represented as multi-line strings. |
| 42 */ |
| 43 // TODO(nweiz): Once cleanUpLiteral is fixed, get rid of this. |
| 44 String indentLiteral(String text) { |
| 45 var lines = text.split('\n'); |
| 46 if (lines.length <= 1) return text; |
| 47 |
| 48 for (var i = 0; i < lines.length; i++) { |
| 49 lines[i] = " ${lines[i]}"; |
| 50 } |
| 51 |
| 52 return Strings.join(lines, "\n"); |
| 53 } |
| OLD | NEW |