| OLD | NEW | 
|---|
| 1 // Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file | 
| 2 // for details. All rights reserved. Use of this source code is governed by a | 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. | 3 // BSD-style license that can be found in the LICENSE file. | 
| 4 | 4 | 
| 5 import 'dart:convert'; | 5 import 'dart:convert'; | 
| 6 import 'dart:io' as io; | 6 import 'dart:io' as io; | 
| 7 | 7 | 
| 8 import '../lib/shared_messages.dart'; | 8 import '../lib/shared_messages.dart'; | 
| 9 | 9 | 
| 10 const String jsonPath = '../lib/generated/shared_messages.json'; | 10 const String jsonPath = '../lib/generated/shared_messages.json'; | 
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 105     if (message.howToFix != null) { | 105     if (message.howToFix != null) { | 
| 106       out.write(",\n    howToFix: ${escapeString(message.howToFix)}"); | 106       out.write(",\n    howToFix: ${escapeString(message.howToFix)}"); | 
| 107     } | 107     } | 
| 108     if (message.options != null) { | 108     if (message.options != null) { | 
| 109       out.write(",\n    options: const ["); | 109       out.write(",\n    options: const ["); | 
| 110       out.write(message.options.map(escapeString).join(",")); | 110       out.write(message.options.map(escapeString).join(",")); | 
| 111       out.writeln("]"); | 111       out.writeln("]"); | 
| 112     } | 112     } | 
| 113     if (message.examples != null) { | 113     if (message.examples != null) { | 
| 114       out.writeln(",\n    examples: const ["); | 114       out.writeln(",\n    examples: const ["); | 
|  | 115 | 
|  | 116       String escapeExampleContent(String content) { | 
|  | 117         if (content.contains("\n") || content.contains('"')) { | 
|  | 118           return 'r"""\n$content"""'; | 
|  | 119         } else if (content.contains("\\")) { | 
|  | 120           return 'r"$content"'; | 
|  | 121         } | 
|  | 122         return '"$content"'; | 
|  | 123       } | 
| 115       for (var example in message.examples) { | 124       for (var example in message.examples) { | 
| 116         if (example is String) { | 125         if (example is String) { | 
| 117           out.writeln("      r'''"); | 126           out.write("      "); | 
| 118           out.write(example); | 127           out.write(escapeExampleContent(example)); | 
| 119           out.write("'''"); |  | 
| 120         } else if (example is Map) { | 128         } else if (example is Map) { | 
| 121           out.writeln("      const {"); | 129           out.writeln("      const {"); | 
| 122           example.forEach((String fileName, String content) { | 130           example.forEach((String fileName, String content) { | 
| 123             out.writeln("      '$fileName': r'''"); | 131             out.writeln("      '$fileName': "); | 
| 124             out.write(content); | 132             out.write(escapeExampleContent(content)); | 
| 125             out.writeln("''',"); | 133             out.writeln(","); | 
| 126           }); | 134           }); | 
| 127           out.write("      }"); | 135           out.write("      }"); | 
| 128         } | 136         } | 
| 129         out.writeln(","); | 137         out.writeln(","); | 
| 130       } | 138       } | 
| 131       out.writeln("    ]"); | 139       out.writeln("    ]"); | 
| 132     } | 140     } | 
| 133     out.writeln("  ),  // Generated. Don't edit."); | 141     out.writeln("  ),  // Generated. Don't edit."); | 
| 134   }); | 142   }); | 
| 135   out.writeln("};"); | 143   out.writeln("};"); | 
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 213 /// Translates the shared messages in `../lib/shared_messages.dart` to JSON, | 221 /// Translates the shared messages in `../lib/shared_messages.dart` to JSON, | 
| 214 /// dart2js, and analyzer formats. | 222 /// dart2js, and analyzer formats. | 
| 215 /// | 223 /// | 
| 216 /// Emits the json-output to [jsonPath], the dart2js-output to [dart2jsPath], | 224 /// Emits the json-output to [jsonPath], the dart2js-output to [dart2jsPath], | 
| 217 /// and the analyzer-output to [analyzerPath]. | 225 /// and the analyzer-output to [analyzerPath]. | 
| 218 void main() { | 226 void main() { | 
| 219   emitJson(); | 227   emitJson(); | 
| 220   emitDart2js(); | 228   emitDart2js(); | 
| 221   emitAnalyzer(); | 229   emitAnalyzer(); | 
| 222 } | 230 } | 
| OLD | NEW | 
|---|