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

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

Issue 2704103002: Some improvements to the command-line analyzer's output. (Closed)
Patch Set: review comments Created 3 years, 10 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
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';
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 136
137 /// Whether implicit dynamic is enabled (mainly for strong mode users) 137 /// Whether implicit dynamic is enabled (mainly for strong mode users)
138 final bool implicitDynamic; 138 final bool implicitDynamic;
139 139
140 /// Whether to treat lints as fatal 140 /// Whether to treat lints as fatal
141 final bool lintsAreFatal; 141 final bool lintsAreFatal;
142 142
143 /// Whether to use memory byte store for analysis driver. 143 /// Whether to use memory byte store for analysis driver.
144 final bool useAnalysisDriverMemoryByteStore; 144 final bool useAnalysisDriverMemoryByteStore;
145 145
146 /// Emit output in a verbose mode.
147 final bool verbose;
148
146 /// Initialize options from the given parsed [args]. 149 /// Initialize options from the given parsed [args].
147 CommandLineOptions._fromArgs(ArgResults args) 150 CommandLineOptions._fromArgs(ArgResults args)
148 : buildAnalysisOutput = args['build-analysis-output'], 151 : buildAnalysisOutput = args['build-analysis-output'],
149 buildMode = args['build-mode'], 152 buildMode = args['build-mode'],
150 buildModePersistentWorker = args['persistent_worker'], 153 buildModePersistentWorker = args['persistent_worker'],
151 buildSummaryInputs = args['build-summary-input'] as List<String>, 154 buildSummaryInputs = args['build-summary-input'] as List<String>,
152 buildSummaryOnly = args['build-summary-only'], 155 buildSummaryOnly = args['build-summary-only'],
153 buildSummaryOnlyDiet = args['build-summary-only-diet'], 156 buildSummaryOnlyDiet = args['build-summary-only-diet'],
154 buildSummaryExcludeInformative = 157 buildSummaryExcludeInformative =
155 args['build-summary-exclude-informative'], 158 args['build-summary-exclude-informative'],
(...skipping 19 matching lines...) Expand all
175 args['x-package-warnings-prefix'] != null, 178 args['x-package-warnings-prefix'] != null,
176 showPackageWarningsPrefix = args['x-package-warnings-prefix'], 179 showPackageWarningsPrefix = args['x-package-warnings-prefix'],
177 showSdkWarnings = args['show-sdk-warnings'] || args['warnings'], 180 showSdkWarnings = args['show-sdk-warnings'] || args['warnings'],
178 sourceFiles = args.rest, 181 sourceFiles = args.rest,
179 warningsAreFatal = args['fatal-warnings'], 182 warningsAreFatal = args['fatal-warnings'],
180 strongMode = args['strong'], 183 strongMode = args['strong'],
181 implicitCasts = !args['no-implicit-casts'], 184 implicitCasts = !args['no-implicit-casts'],
182 implicitDynamic = !args['no-implicit-dynamic'], 185 implicitDynamic = !args['no-implicit-dynamic'],
183 lintsAreFatal = args['fatal-lints'], 186 lintsAreFatal = args['fatal-lints'],
184 useAnalysisDriverMemoryByteStore = 187 useAnalysisDriverMemoryByteStore =
185 args['use-analysis-driver-memory-byte-store']; 188 args['use-analysis-driver-memory-byte-store'],
189 verbose = args['verbose'];
186 190
187 /// The path to an analysis options file 191 /// The path to an analysis options file
188 String get analysisOptionsFile => 192 String get analysisOptionsFile =>
189 contextBuilderOptions.defaultAnalysisOptionsFilePath; 193 contextBuilderOptions.defaultAnalysisOptionsFilePath;
190 194
191 /// A table mapping the names of defined variables to their values. 195 /// A table mapping the names of defined variables to their values.
192 Map<String, String> get definedVariables => 196 Map<String, String> get definedVariables =>
193 contextBuilderOptions.declaredVariables; 197 contextBuilderOptions.declaredVariables;
194 198
195 /// Whether to strictly follow the specification when generating warnings on 199 /// Whether to strictly follow the specification when generating warnings on
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 ..addFlag('version', 301 ..addFlag('version',
298 help: 'Print the analyzer version.', 302 help: 'Print the analyzer version.',
299 defaultsTo: false, 303 defaultsTo: false,
300 negatable: false) 304 negatable: false)
301 ..addFlag('lints', 305 ..addFlag('lints',
302 help: 'Show lint results.', defaultsTo: false, negatable: false) 306 help: 'Show lint results.', defaultsTo: false, negatable: false)
303 ..addFlag('no-hints', 307 ..addFlag('no-hints',
304 help: 'Do not show hint results.', 308 help: 'Do not show hint results.',
305 defaultsTo: false, 309 defaultsTo: false,
306 negatable: false) 310 negatable: false)
307 ..addFlag(ignoreUnrecognizedFlagsFlag,
308 help: 'Ignore unrecognized command line flags.',
309 defaultsTo: false,
310 negatable: false)
311 ..addFlag('fatal-hints', 311 ..addFlag('fatal-hints',
312 help: 'Treat hints as fatal.', defaultsTo: false, negatable: false) 312 help: 'Treat hints as fatal.', defaultsTo: false, negatable: false)
313 ..addFlag('fatal-warnings', 313 ..addFlag('fatal-warnings',
314 help: 'Treat non-type warnings as fatal.', 314 help: 'Treat non-type warnings as fatal.',
315 defaultsTo: false, 315 defaultsTo: false,
316 negatable: false) 316 negatable: false)
317 ..addFlag('fatal-lints', 317 ..addFlag('fatal-lints',
318 help: 'Treat lints as fatal.', defaultsTo: false, negatable: false) 318 help: 'Treat lints as fatal.', defaultsTo: false, negatable: false)
319 ..addFlag('package-warnings', 319 ..addFlag('package-warnings',
320 help: 'Show warnings from package: imports.', 320 help: 'Show warnings from package: imports.',
(...skipping 14 matching lines...) Expand all
335 ..addFlag('help', 335 ..addFlag('help',
336 abbr: 'h', 336 abbr: 'h',
337 help: 337 help:
338 'Display this help message. Add --verbose to show hidden options.' , 338 'Display this help message. Add --verbose to show hidden options.' ,
339 defaultsTo: false, 339 defaultsTo: false,
340 negatable: false) 340 negatable: false)
341 ..addFlag('verbose', 341 ..addFlag('verbose',
342 abbr: 'v', 342 abbr: 'v',
343 defaultsTo: false, 343 defaultsTo: false,
344 help: 'Verbose output.', 344 help: 'Verbose output.',
345 negatable: false) 345 negatable: false);
346 ..addOption('url-mapping',
347 help: '--url-mapping=libraryUri,/path/to/library.dart directs the '
348 'analyzer to use "library.dart" as the source for an import '
349 'of "libraryUri".',
350 allowMultiple: true,
351 splitCommas: false);
352 346
353 // Build mode options. 347 // Build mode options.
354 if (!hide) { 348 if (!hide) {
355 parser.addSeparator('Build mode flags:'); 349 parser.addSeparator('Build mode flags:');
356 } 350 }
357 351
358 parser 352 parser
359 ..addFlag('persistent_worker', 353 ..addFlag('persistent_worker',
360 help: 'Enable Bazel persistent worker mode.', 354 help: 'Enable Bazel persistent worker mode.',
361 defaultsTo: false, 355 defaultsTo: false,
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 if (!hide) { 409 if (!hide) {
416 parser.addSeparator('Less frequently used flags:'); 410 parser.addSeparator('Less frequently used flags:');
417 } 411 }
418 412
419 parser 413 parser
420 ..addFlag('batch', 414 ..addFlag('batch',
421 help: 'Read commands from standard input (for testing).', 415 help: 'Read commands from standard input (for testing).',
422 defaultsTo: false, 416 defaultsTo: false,
423 negatable: false, 417 negatable: false,
424 hide: hide) 418 hide: hide)
419 ..addFlag(ignoreUnrecognizedFlagsFlag,
420 help: 'Ignore unrecognized command line flags.',
421 defaultsTo: false,
422 negatable: false,
423 hide: hide)
425 ..addFlag('disable-cache-flushing', defaultsTo: false, hide: hide) 424 ..addFlag('disable-cache-flushing', defaultsTo: false, hide: hide)
426 ..addOption('x-perf-report', 425 ..addOption('x-perf-report',
427 help: 'Writes a performance report to the given file (experimental).', 426 help: 'Writes a performance report to the given file (experimental).',
428 hide: hide) 427 hide: hide)
429 ..addOption('x-package-warnings-prefix', 428 ..addOption('x-package-warnings-prefix',
430 help: 429 help:
431 'Show warnings from package: imports that match the given prefix', 430 'Show warnings from package: imports that match the given prefix',
432 hide: hide) 431 hide: hide)
433 ..addFlag('enable-conditional-directives', 432 ..addFlag('enable-conditional-directives',
434 help: 433 help:
435 'deprecated -- Enable support for conditional directives (DEP 40). ', 434 'deprecated -- Enable support for conditional directives (DEP 40). ',
436 defaultsTo: false, 435 defaultsTo: false,
437 negatable: false, 436 negatable: false,
438 hide: hide) 437 hide: hide)
439 ..addFlag('log', 438 ..addFlag('log',
440 help: 'Log additional messages and exceptions.', 439 help: 'Log additional messages and exceptions.',
441 defaultsTo: false, 440 defaultsTo: false,
442 negatable: false, 441 negatable: false,
443 hide: hide) 442 hide: hide)
444 ..addFlag('enable_type_checks', 443 ..addFlag('enable_type_checks',
445 help: 'Check types in constant evaluation.', 444 help: 'Check types in constant evaluation.',
446 defaultsTo: false, 445 defaultsTo: false,
447 negatable: false, 446 negatable: false,
448 hide: hide) 447 hide: hide)
449 ..addFlag('use-analysis-driver-memory-byte-store', 448 ..addFlag('use-analysis-driver-memory-byte-store',
450 help: 'Use memory byte store, not the file system cache.', 449 help: 'Use memory byte store, not the file system cache.',
451 defaultsTo: false, 450 defaultsTo: false,
452 negatable: false, 451 negatable: false,
452 hide: hide)
453 ..addOption('url-mapping',
454 help: '--url-mapping=libraryUri,/path/to/library.dart directs the '
455 'analyzer to use "library.dart" as the source for an import '
456 'of "libraryUri".',
457 allowMultiple: true,
458 splitCommas: false,
453 hide: hide); 459 hide: hide);
454 460
455 try { 461 try {
456 if (args.contains('--$ignoreUnrecognizedFlagsFlag')) { 462 if (args.contains('--$ignoreUnrecognizedFlagsFlag')) {
457 args = filterUnknownArguments(args, parser); 463 args = filterUnknownArguments(args, parser);
458 } 464 }
459 ArgResults results = parser.parse(args); 465 ArgResults results = parser.parse(args);
460 466
461 // Persistent worker. 467 // Persistent worker.
462 if (args.contains('--persistent_worker')) { 468 if (args.contains('--persistent_worker')) {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 'Usage: $_binaryName [options...] <directory or list of files>'); 532 'Usage: $_binaryName [options...] <directory or list of files>');
527 errorSink.writeln(''); 533 errorSink.writeln('');
528 errorSink.writeln(parser.usage); 534 errorSink.writeln(parser.usage);
529 errorSink.writeln(''); 535 errorSink.writeln('');
530 errorSink.writeln(''' 536 errorSink.writeln('''
531 Run "dartanalyzer -h -v" for verbose help output, including less commonly used o ptions. 537 Run "dartanalyzer -h -v" for verbose help output, including less commonly used o ptions.
532 For more information, see http://www.dartlang.org/tools/analyzer. 538 For more information, see http://www.dartlang.org/tools/analyzer.
533 '''); 539 ''');
534 } 540 }
535 } 541 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698