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

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

Issue 2775633002: Use ansi color in the dartanalyzer cli output. (Closed)
Patch Set: Created 3 years, 9 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';
11 import 'package:analyzer/src/context/builder.dart'; 11 import 'package:analyzer/src/context/builder.dart';
12 import 'package:analyzer_cli/src/ansi.dart' as ansi;
12 import 'package:analyzer_cli/src/driver.dart'; 13 import 'package:analyzer_cli/src/driver.dart';
13 import 'package:args/args.dart'; 14 import 'package:args/args.dart';
14 import 'package:cli_util/cli_util.dart' show getSdkDir; 15 import 'package:cli_util/cli_util.dart' show getSdkDir;
15 16
16 const _binaryName = 'dartanalyzer'; 17 const _binaryName = 'dartanalyzer';
17 18
18 /// Shared exit handler. 19 /// Shared exit handler.
19 /// 20 ///
20 /// *Visible for testing.* 21 /// *Visible for testing.*
21 ExitHandler exitHandler = exit; 22 ExitHandler exitHandler = exit;
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 137
137 /// Whether to treat lints as fatal 138 /// Whether to treat lints as fatal
138 final bool lintsAreFatal; 139 final bool lintsAreFatal;
139 140
140 /// Whether to use memory byte store for analysis driver. 141 /// Whether to use memory byte store for analysis driver.
141 final bool useAnalysisDriverMemoryByteStore; 142 final bool useAnalysisDriverMemoryByteStore;
142 143
143 /// Emit output in a verbose mode. 144 /// Emit output in a verbose mode.
144 final bool verbose; 145 final bool verbose;
145 146
147 /// Use ANSI color codes for output.
148 final bool color;
149
146 /// Initialize options from the given parsed [args]. 150 /// Initialize options from the given parsed [args].
147 CommandLineOptions._fromArgs(ArgResults args) 151 CommandLineOptions._fromArgs(ArgResults args)
148 : buildAnalysisOutput = args['build-analysis-output'], 152 : buildAnalysisOutput = args['build-analysis-output'],
149 buildMode = args['build-mode'], 153 buildMode = args['build-mode'],
150 buildModePersistentWorker = args['persistent_worker'], 154 buildModePersistentWorker = args['persistent_worker'],
151 buildSummaryInputs = args['build-summary-input'] as List<String>, 155 buildSummaryInputs = args['build-summary-input'] as List<String>,
152 buildSummaryOnly = args['build-summary-only'], 156 buildSummaryOnly = args['build-summary-only'],
153 buildSummaryOnlyDiet = args['build-summary-only-diet'], 157 buildSummaryOnlyDiet = args['build-summary-only-diet'],
154 buildSummaryOutput = args['build-summary-output'], 158 buildSummaryOutput = args['build-summary-output'],
155 buildSummaryOutputSemantic = args['build-summary-output-semantic'], 159 buildSummaryOutputSemantic = args['build-summary-output-semantic'],
(...skipping 18 matching lines...) Expand all
174 showPackageWarningsPrefix = args['x-package-warnings-prefix'], 178 showPackageWarningsPrefix = args['x-package-warnings-prefix'],
175 showSdkWarnings = args['sdk-warnings'], 179 showSdkWarnings = args['sdk-warnings'],
176 _sourceFiles = args.rest, 180 _sourceFiles = args.rest,
177 warningsAreFatal = args['fatal-warnings'], 181 warningsAreFatal = args['fatal-warnings'],
178 strongMode = args['strong'], 182 strongMode = args['strong'],
179 implicitCasts = !args['no-implicit-casts'], 183 implicitCasts = !args['no-implicit-casts'],
180 implicitDynamic = !args['no-implicit-dynamic'], 184 implicitDynamic = !args['no-implicit-dynamic'],
181 lintsAreFatal = args['fatal-lints'], 185 lintsAreFatal = args['fatal-lints'],
182 useAnalysisDriverMemoryByteStore = 186 useAnalysisDriverMemoryByteStore =
183 args['use-analysis-driver-memory-byte-store'], 187 args['use-analysis-driver-memory-byte-store'],
184 verbose = args['verbose']; 188 verbose = args['verbose'],
189 color = args['color'];
185 190
186 /// The path to an analysis options file 191 /// The path to an analysis options file
187 String get analysisOptionsFile => 192 String get analysisOptionsFile =>
188 contextBuilderOptions.defaultAnalysisOptionsFilePath; 193 contextBuilderOptions.defaultAnalysisOptionsFilePath;
189 194
190 /// A table mapping the names of defined variables to their values. 195 /// A table mapping the names of defined variables to their values.
191 Map<String, String> get definedVariables => 196 Map<String, String> get definedVariables =>
192 contextBuilderOptions.declaredVariables; 197 contextBuilderOptions.declaredVariables;
193 198
194 /// Whether to strictly follow the specification when generating warnings on 199 /// Whether to strictly follow the specification when generating warnings on
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 hide: hide) 381 hide: hide)
377 ..addFlag('build-summary-only-diet', 382 ..addFlag('build-summary-only-diet',
378 help: 'Diet parse function bodies.', 383 help: 'Diet parse function bodies.',
379 defaultsTo: false, 384 defaultsTo: false,
380 negatable: false, 385 negatable: false,
381 hide: hide) 386 hide: hide)
382 ..addFlag('build-suppress-exit-code', 387 ..addFlag('build-suppress-exit-code',
383 help: 'Exit with code 0 even if errors are found.', 388 help: 'Exit with code 0 even if errors are found.',
384 defaultsTo: false, 389 defaultsTo: false,
385 negatable: false, 390 negatable: false,
391 hide: hide)
392 ..addFlag('color',
Brian Wilkerson 2017/03/23 17:09:51 Should this be shared with DDC?
devoncarew 2017/03/25 22:33:17 I don't think their output uses color (or plans to
393 help: 'Use asni colors when printing messages.',
394 defaultsTo: ansi.terminalSupportsAnsi(),
386 hide: hide); 395 hide: hide);
387 396
388 // Hidden flags. 397 // Hidden flags.
389 if (!hide) { 398 if (!hide) {
390 parser.addSeparator('Less frequently used flags:'); 399 parser.addSeparator('Less frequently used flags:');
391 } 400 }
392 401
393 parser 402 parser
394 ..addFlag('batch', 403 ..addFlag('batch',
395 help: 'Read commands from standard input (for testing).', 404 help: 'Read commands from standard input (for testing).',
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 'Usage: $_binaryName [options...] <directory or list of files>'); 525 'Usage: $_binaryName [options...] <directory or list of files>');
517 errorSink.writeln(''); 526 errorSink.writeln('');
518 errorSink.writeln(parser.usage); 527 errorSink.writeln(parser.usage);
519 errorSink.writeln(''); 528 errorSink.writeln('');
520 errorSink.writeln(''' 529 errorSink.writeln('''
521 Run "dartanalyzer -h -v" for verbose help output, including less commonly used o ptions. 530 Run "dartanalyzer -h -v" for verbose help output, including less commonly used o ptions.
522 For more information, see http://www.dartlang.org/tools/analyzer. 531 For more information, see http://www.dartlang.org/tools/analyzer.
523 '''); 532 ''');
524 } 533 }
525 } 534 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698