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

Side by Side Diff: pkg/analyzer_cli/lib/src/options.dart

Issue 2578113002: refactor DDC to support --ignore-unrecognized-flags (Closed)
Patch Set: merge Created 4 years 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
OLDNEW
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 library analyzer_cli.src.options; 5 library analyzer_cli.src.options;
6 6
7 import 'dart:io'; 7 import 'dart:io';
8 8
9 import 'package:analyzer/file_system/physical_file_system.dart'; 9 import 'package:analyzer/file_system/physical_file_system.dart';
10 import 'package:analyzer/src/command_line/arguments.dart'; 10 import 'package:analyzer/src/command_line/arguments.dart';
11 import 'package:analyzer/src/command_line/command_line_parser.dart';
12 import 'package:analyzer_cli/src/driver.dart'; 11 import 'package:analyzer_cli/src/driver.dart';
13 import 'package:args/args.dart'; 12 import 'package:args/args.dart';
14 import 'package:cli_util/cli_util.dart' show getSdkDir; 13 import 'package:cli_util/cli_util.dart' show getSdkDir;
15 14
16 const _binaryName = 'dartanalyzer'; 15 const _binaryName = 'dartanalyzer';
17 16
18 /// Shared exit handler. 17 /// Shared exit handler.
19 /// 18 ///
20 /// *Visible for testing.* 19 /// *Visible for testing.*
21 ExitHandler exitHandler = exit; 20 ExitHandler exitHandler = exit;
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 } 274 }
276 } 275 }
277 276
278 static CommandLineOptions _parse(List<String> args) { 277 static CommandLineOptions _parse(List<String> args) {
279 args = preprocessArgs(PhysicalResourceProvider.INSTANCE, args); 278 args = preprocessArgs(PhysicalResourceProvider.INSTANCE, args);
280 279
281 bool verbose = args.contains('-v') || args.contains('--verbose'); 280 bool verbose = args.contains('-v') || args.contains('--verbose');
282 bool hide = !verbose; 281 bool hide = !verbose;
283 282
284 args = args.expand((String arg) => arg.split('=')).toList(); 283 args = args.expand((String arg) => arg.split('=')).toList();
285 var parser = new CommandLineParser() 284 var parser = new ArgParser(allowTrailingOptions: true)
286 ..addFlag('batch', 285 ..addFlag('batch',
287 abbr: 'b', 286 abbr: 'b',
288 help: 'Read commands from standard input (for testing).', 287 help: 'Read commands from standard input (for testing).',
289 defaultsTo: false, 288 defaultsTo: false,
290 negatable: false) 289 negatable: false)
291 ..addOption('dart-sdk', help: 'The path to the Dart SDK.') 290 ..addOption('dart-sdk', help: 'The path to the Dart SDK.')
292 ..addOption('dart-sdk-summary', 291 ..addOption('dart-sdk-summary',
293 help: 'The path to the Dart SDK summary file.', hide: true) 292 help: 'The path to the Dart SDK summary file.', hide: true)
294 ..addOption('packages', 293 ..addOption('packages',
295 help: 294 help:
(...skipping 15 matching lines...) Expand all
311 help: 'Print the analyzer version.', 310 help: 'Print the analyzer version.',
312 defaultsTo: false, 311 defaultsTo: false,
313 negatable: false) 312 negatable: false)
314 ..addFlag('lints', 313 ..addFlag('lints',
315 help: 'Show lint results.', defaultsTo: false, negatable: false) 314 help: 'Show lint results.', defaultsTo: false, negatable: false)
316 ..addFlag('no-hints', 315 ..addFlag('no-hints',
317 help: 'Do not show hint results.', 316 help: 'Do not show hint results.',
318 defaultsTo: false, 317 defaultsTo: false,
319 negatable: false) 318 negatable: false)
320 ..addFlag('disable-cache-flushing', defaultsTo: false, hide: true) 319 ..addFlag('disable-cache-flushing', defaultsTo: false, hide: true)
320 ..addFlag(ignoreUnrecognizedFlagsFlag,
321 help: 'Ignore unrecognized command line flags.',
322 defaultsTo: false,
323 negatable: false)
321 ..addFlag('fatal-hints', 324 ..addFlag('fatal-hints',
322 help: 'Treat hints as fatal.', defaultsTo: false, negatable: false) 325 help: 'Treat hints as fatal.', defaultsTo: false, negatable: false)
323 ..addFlag('fatal-warnings', 326 ..addFlag('fatal-warnings',
324 help: 'Treat non-type warnings as fatal.', 327 help: 'Treat non-type warnings as fatal.',
325 defaultsTo: false, 328 defaultsTo: false,
326 negatable: false) 329 negatable: false)
327 ..addFlag('fatal-lints', 330 ..addFlag('fatal-lints',
328 help: 'Treat lints as fatal.', defaultsTo: false, negatable: false) 331 help: 'Treat lints as fatal.', defaultsTo: false, negatable: false)
329 ..addFlag('package-warnings', 332 ..addFlag('package-warnings',
330 help: 'Show warnings from package: imports.', 333 help: 'Show warnings from package: imports.',
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 ..addFlag('no-implicit-dynamic', 485 ..addFlag('no-implicit-dynamic',
483 negatable: false, 486 negatable: false,
484 help: 'Disable implicit dynamic (https://goo.gl/m0UgXD)'); 487 help: 'Disable implicit dynamic (https://goo.gl/m0UgXD)');
485 488
486 try { 489 try {
487 // TODO(scheglov) https://code.google.com/p/dart/issues/detail?id=11061 490 // TODO(scheglov) https://code.google.com/p/dart/issues/detail?id=11061
488 args = 491 args =
489 args.map((String arg) => arg == '-batch' ? '--batch' : arg).toList(); 492 args.map((String arg) => arg == '-batch' ? '--batch' : arg).toList();
490 Map<String, String> definedVariables = <String, String>{}; 493 Map<String, String> definedVariables = <String, String>{};
491 args = extractDefinedVariables(args, definedVariables); 494 args = extractDefinedVariables(args, definedVariables);
495 if (args.contains('--$ignoreUnrecognizedFlagsFlag')) {
496 args = filterUnknownArguments(args, parser);
497 }
492 var results = parser.parse(args); 498 var results = parser.parse(args);
493 499
494 // Persistent worker. 500 // Persistent worker.
495 if (args.contains('--persistent_worker')) { 501 if (args.contains('--persistent_worker')) {
496 bool validArgs; 502 bool validArgs;
497 if (!args.contains('--build-mode')) { 503 if (!args.contains('--build-mode')) {
498 validArgs = false; 504 validArgs = false;
499 } else if (args.length == 2) { 505 } else if (args.length == 2) {
500 validArgs = true; 506 validArgs = true;
501 } else if (args.length == 4 && args.contains('--dart-sdk')) { 507 } else if (args.length == 4 && args.contains('--dart-sdk')) {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 562
557 static _showUsage(parser) { 563 static _showUsage(parser) {
558 errorSink 564 errorSink
559 .writeln('Usage: $_binaryName [options...] <libraries to analyze...>'); 565 .writeln('Usage: $_binaryName [options...] <libraries to analyze...>');
560 errorSink.writeln(parser.getUsage()); 566 errorSink.writeln(parser.getUsage());
561 errorSink.writeln(''); 567 errorSink.writeln('');
562 errorSink.writeln( 568 errorSink.writeln(
563 'For more information, see http://www.dartlang.org/tools/analyzer.'); 569 'For more information, see http://www.dartlang.org/tools/analyzer.');
564 } 570 }
565 } 571 }
OLDNEW
« no previous file with comments | « pkg/analyzer/test/src/command_line/test_all.dart ('k') | pkg/dev_compiler/lib/src/compiler/command.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698