Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1062)

Side by Side Diff: pkg/args/lib/args.dart

Issue 23913009: Add support for hidden options to pkg/args. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | pkg/args/lib/src/options.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 /** 5 /**
6 * Parser support for transforming raw command-line arguments into a set 6 * Parser support for transforming raw command-line arguments into a set
7 * of options and values. 7 * of options and values.
8 * 8 *
9 * This library supports [GNU][] and [POSIX][] style options, and it works 9 * This library supports [GNU][] and [POSIX][] style options, and it works
10 * in both server-side and client-side apps. 10 * in both server-side and client-side apps.
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 } 327 }
328 328
329 /** 329 /**
330 * Defines a value-taking option. Throws an [ArgumentError] if: 330 * Defines a value-taking option. Throws an [ArgumentError] if:
331 * 331 *
332 * * There is already an option with name [name]. 332 * * There is already an option with name [name].
333 * * There is already an option using abbreviation [abbr]. 333 * * There is already an option using abbreviation [abbr].
334 */ 334 */
335 void addOption(String name, {String abbr, String help, List<String> allowed, 335 void addOption(String name, {String abbr, String help, List<String> allowed,
336 Map<String, String> allowedHelp, String defaultsTo, 336 Map<String, String> allowedHelp, String defaultsTo,
337 void callback(value), bool allowMultiple: false}) { 337 void callback(value), bool allowMultiple: false,
338 bool isHidden: false}) {
Bob Nystrom 2013/09/24 20:57:07 Let's do "hide" for the named parameter.
nweiz 2013/09/24 21:01:17 Done.
338 _addOption(name, abbr, help, allowed, allowedHelp, defaultsTo, 339 _addOption(name, abbr, help, allowed, allowedHelp, defaultsTo,
339 callback, isFlag: false, allowMultiple: allowMultiple); 340 callback, isFlag: false, allowMultiple: allowMultiple,
341 isHidden: isHidden);
340 } 342 }
341 343
342 void _addOption(String name, String abbr, String help, List<String> allowed, 344 void _addOption(String name, String abbr, String help, List<String> allowed,
343 Map<String, String> allowedHelp, defaultsTo, 345 Map<String, String> allowedHelp, defaultsTo,
344 void callback(value), {bool isFlag, bool negatable: false, 346 void callback(value), {bool isFlag, bool negatable: false,
345 bool allowMultiple: false}) { 347 bool allowMultiple: false, bool isHidden: false}) {
346 // Make sure the name isn't in use. 348 // Make sure the name isn't in use.
347 if (_options.containsKey(name)) { 349 if (_options.containsKey(name)) {
348 throw new ArgumentError('Duplicate option "$name".'); 350 throw new ArgumentError('Duplicate option "$name".');
349 } 351 }
350 352
351 // Make sure the abbreviation isn't too long or in use. 353 // Make sure the abbreviation isn't too long or in use.
352 if (abbr != null) { 354 if (abbr != null) {
353 var existing = findByAbbreviation(abbr); 355 var existing = findByAbbreviation(abbr);
354 if (existing != null) { 356 if (existing != null) {
355 throw new ArgumentError( 357 throw new ArgumentError(
356 'Abbreviation "$abbr" is already used by "${existing.name}".'); 358 'Abbreviation "$abbr" is already used by "${existing.name}".');
357 } 359 }
358 } 360 }
359 361
360 _options[name] = new Option(name, abbr, help, allowed, allowedHelp, 362 _options[name] = new Option(name, abbr, help, allowed, allowedHelp,
361 defaultsTo, callback, isFlag: isFlag, negatable: negatable, 363 defaultsTo, callback, isFlag: isFlag, negatable: negatable,
362 allowMultiple: allowMultiple); 364 allowMultiple: allowMultiple, isHidden: isHidden);
363 } 365 }
364 366
365 /** 367 /**
366 * Parses [args], a list of command-line arguments, matches them against the 368 * Parses [args], a list of command-line arguments, matches them against the
367 * flags and options defined by this parser, and returns the result. 369 * flags and options defined by this parser, and returns the result.
368 * 370 *
369 * If [allowTrailingOptions] is set, the parser will continue parsing even 371 * If [allowTrailingOptions] is set, the parser will continue parsing even
370 * after it finds an argument that is neither an option nor a command. 372 * after it finds an argument that is neither an option nor a command.
371 * This allows options to be specified after regular arguments. 373 * This allows options to be specified after regular arguments.
372 * 374 *
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 'Could not find an option named "$name".'); 447 'Could not find an option named "$name".');
446 } 448 }
447 449
448 return _options[name]; 450 return _options[name];
449 } 451 }
450 452
451 /** Get the names of the options as an [Iterable]. */ 453 /** Get the names of the options as an [Iterable]. */
452 Iterable<String> get options => _options.keys; 454 Iterable<String> get options => _options.keys;
453 } 455 }
454 456
OLDNEW
« no previous file with comments | « no previous file | pkg/args/lib/src/options.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698