| Index: lib/options.dart
|
| diff --git a/lib/options.dart b/lib/options.dart
|
| index 3e202bdb52af63c4b817b5cce78948f6914c38c1..0679c025c4e3fe2759fb9a5046f1d014167e5ece 100644
|
| --- a/lib/options.dart
|
| +++ b/lib/options.dart
|
| @@ -9,9 +9,8 @@ part of protoc;
|
| /// key-value pair ("name=value"). For each option "name", it looks up whether a
|
| /// [SingleOptionParser] exists in [parsers] and delegates the actual parsing of
|
| /// the option to it. Returns `true` if no errors were reported.
|
| -bool genericOptionsParser(
|
| - CodeGeneratorRequest request, CodeGeneratorResponse response,
|
| - Map<String, SingleOptionParser> parsers) {
|
| +bool genericOptionsParser(CodeGeneratorRequest request,
|
| + CodeGeneratorResponse response, Map<String, SingleOptionParser> parsers) {
|
| var parameter = request.parameter != null ? request.parameter : '';
|
| var options = parameter.trim().split(',');
|
| var errors = [];
|
| @@ -19,9 +18,9 @@ bool genericOptionsParser(
|
| for (var option in options) {
|
| option = option.trim();
|
| if (option.isEmpty) continue;
|
| - var reportError = (details) {
|
| + void reportError(String details) {
|
| errors.add('Error found trying to parse the option: $option.\n$details');
|
| - };
|
| + }
|
|
|
| var nameValue = option.split('=');
|
| if (nameValue.length != 1 && nameValue.length != 2) {
|
| @@ -58,7 +57,6 @@ class GenerationOptions {
|
| /// [genericOptionsParser] delegate to instances of this class to
|
| /// parse the value of a specific option.
|
| abstract class SingleOptionParser {
|
| -
|
| /// Parse the [name]=[value] value pair and report any errors to [onError]. If
|
| /// the option is a flag, [value] will be null. Note, [name] is commonly
|
| /// unused. It is provided because [SingleOptionParser] can be registered for
|
| @@ -73,10 +71,12 @@ GenerationOptions parseGenerationOptions(
|
| CodeGeneratorRequest request, CodeGeneratorResponse response,
|
| [Map<String, SingleOptionParser> parsers]) {
|
| var fieldNameOptionParser = new FieldNameOptionParser();
|
| - var map = {};
|
| - if (parsers != null) parsers.forEach((k, v) { map[k] = v; });
|
| - map['field_name'] = fieldNameOptionParser;
|
| - if (genericOptionsParser(request, response, map)) {
|
| +
|
| + var newParsers = <String, SingleOptionParser>{};
|
| + if (parsers != null) newParsers.addAll(parsers);
|
| + newParsers['field_name'] = fieldNameOptionParser;
|
| +
|
| + if (genericOptionsParser(request, response, newParsers)) {
|
| return new GenerationOptions(fieldNameOptionParser.mappings);
|
| }
|
| return null;
|
|
|