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

Side by Side Diff: pkg/analyzer/lib/src/command_line/arguments.dart

Issue 2716693003: enhance ContextBuilder getAnalysisOptions to handle lints (Closed)
Patch Set: 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
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/context/builder.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) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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.src.command_line.arguments; 5 library analyzer.src.command_line.arguments;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 8
9 import 'package:analyzer/file_system/file_system.dart'; 9 import 'package:analyzer/file_system/file_system.dart';
10 import 'package:analyzer/src/context/builder.dart'; 10 import 'package:analyzer/src/context/builder.dart';
11 import 'package:analyzer/src/dart/sdk/sdk.dart'; 11 import 'package:analyzer/src/dart/sdk/sdk.dart';
12 import 'package:analyzer/src/generated/engine.dart'; 12 import 'package:analyzer/src/generated/engine.dart';
13 import 'package:analyzer/src/generated/sdk.dart'; 13 import 'package:analyzer/src/generated/sdk.dart';
14 import 'package:args/args.dart'; 14 import 'package:args/args.dart';
15 import 'package:path/path.dart'; 15 import 'package:path/path.dart';
16 16
17 const String analysisOptionsFileOption = 'options'; 17 const String analysisOptionsFileOption = 'options';
18 const String defineVariableOption = 'D'; 18 const String defineVariableOption = 'D';
19 const String enableInitializingFormalAccessFlag = 'initializing-formal-access'; 19 const String enableInitializingFormalAccessFlag = 'initializing-formal-access';
20 const String enableStrictCallChecksFlag = 'enable-strict-call-checks'; 20 const String enableStrictCallChecksFlag = 'enable-strict-call-checks';
21 const String enableSuperMixinFlag = 'supermixin'; 21 const String enableSuperMixinFlag = 'supermixin';
22 const String ignoreUnrecognizedFlagsFlag = 'ignore-unrecognized-flags'; 22 const String ignoreUnrecognizedFlagsFlag = 'ignore-unrecognized-flags';
23 const String lintsFlag = 'lints';
23 const String noImplicitCastsFlag = 'no-implicit-casts'; 24 const String noImplicitCastsFlag = 'no-implicit-casts';
24 const String noImplicitDynamicFlag = 'no-implicit-dynamic'; 25 const String noImplicitDynamicFlag = 'no-implicit-dynamic';
25 const String packageRootOption = 'package-root'; 26 const String packageRootOption = 'package-root';
26 const String packagesOption = 'packages'; 27 const String packagesOption = 'packages';
27 const String sdkPathOption = 'dart-sdk'; 28 const String sdkPathOption = 'dart-sdk';
28 const String sdkSummaryPathOption = 'dart-sdk-summary'; 29 const String sdkSummaryPathOption = 'dart-sdk-summary';
29 const String strongModeFlag = 'strong'; 30 const String strongModeFlag = 'strong';
30 31
31 /** 32 /**
32 * Update [options] with the value of each analysis option command line flag. 33 * Update [options] with the value of each analysis option command line flag.
33 */ 34 */
34 void applyAnalysisOptionFlags(AnalysisOptionsImpl options, ArgResults args) { 35 void applyAnalysisOptionFlags(AnalysisOptionsImpl options, ArgResults args) {
35 if (args.wasParsed(enableStrictCallChecksFlag)) { 36 if (args.wasParsed(enableStrictCallChecksFlag)) {
36 options.enableStrictCallChecks = args[enableStrictCallChecksFlag]; 37 options.enableStrictCallChecks = args[enableStrictCallChecksFlag];
37 } 38 }
38 if (args.wasParsed(enableSuperMixinFlag)) { 39 if (args.wasParsed(enableSuperMixinFlag)) {
39 options.enableSuperMixins = args[enableSuperMixinFlag]; 40 options.enableSuperMixins = args[enableSuperMixinFlag];
40 } 41 }
41 if (args.wasParsed(noImplicitCastsFlag)) { 42 if (args.wasParsed(noImplicitCastsFlag)) {
42 options.implicitCasts = !args[noImplicitCastsFlag]; 43 options.implicitCasts = !args[noImplicitCastsFlag];
43 } 44 }
44 if (args.wasParsed(noImplicitDynamicFlag)) { 45 if (args.wasParsed(noImplicitDynamicFlag)) {
45 options.implicitDynamic = !args[noImplicitDynamicFlag]; 46 options.implicitDynamic = !args[noImplicitDynamicFlag];
46 } 47 }
47 if (args.wasParsed(strongModeFlag)) { 48 if (args.wasParsed(strongModeFlag)) {
48 options.strongMode = args[strongModeFlag]; 49 options.strongMode = args[strongModeFlag];
49 } 50 }
51 if (args.wasParsed(lintsFlag)) {
52 options.lint = args[lintsFlag];
53 }
50 } 54 }
51 55
52 /** 56 /**
53 * Use the given [resourceProvider], [contentCache] and command-line [args] to 57 * Use the given [resourceProvider], [contentCache] and command-line [args] to
54 * create a context builder. 58 * create a context builder.
55 */ 59 */
56 ContextBuilderOptions createContextBuilderOptions(ArgResults args, 60 ContextBuilderOptions createContextBuilderOptions(ArgResults args,
57 {bool strongMode, bool trackCacheDependencies}) { 61 {bool strongMode, bool trackCacheDependencies}) {
58 ContextBuilderOptions builderOptions = new ContextBuilderOptions(); 62 ContextBuilderOptions builderOptions = new ContextBuilderOptions();
59 builderOptions.argResults = args; 63 builderOptions.argResults = args;
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 'Enable support for allowing access to field formal parameters in a ' 179 'Enable support for allowing access to field formal parameters in a '
176 'constructor\'s initializer list', 180 'constructor\'s initializer list',
177 defaultsTo: false, 181 defaultsTo: false,
178 negatable: false, 182 negatable: false,
179 hide: hide || ddc); 183 hide: hide || ddc);
180 parser.addFlag(enableSuperMixinFlag, 184 parser.addFlag(enableSuperMixinFlag,
181 help: 'Relax restrictions on mixins (DEP 34).', 185 help: 'Relax restrictions on mixins (DEP 34).',
182 defaultsTo: false, 186 defaultsTo: false,
183 negatable: false, 187 negatable: false,
184 hide: hide); 188 hide: hide);
189 if (!ddc) {
190 parser.addFlag(lintsFlag,
191 help: 'Show lint results.', defaultsTo: false, negatable: true);
192 }
185 } 193 }
186 194
187 /** 195 /**
188 * Find arguments of the form -Dkey=value 196 * Find arguments of the form -Dkey=value
189 * or argument pairs of the form -Dkey value 197 * or argument pairs of the form -Dkey value
190 * and place those key/value pairs into [definedVariables]. 198 * and place those key/value pairs into [definedVariables].
191 * Return a list of arguments with the key/value arguments removed. 199 * Return a list of arguments with the key/value arguments removed.
192 */ 200 */
193 List<String> extractDefinedVariables( 201 List<String> extractDefinedVariables(
194 List<String> args, Map<String, String> definedVariables) { 202 List<String> args, Map<String, String> definedVariables) {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 .replaceAll('\r\n', '\n') 310 .replaceAll('\r\n', '\n')
303 .replaceAll('\r', '\n') 311 .replaceAll('\r', '\n')
304 .split('\n') 312 .split('\n')
305 .where((String line) => line.isNotEmpty)); 313 .where((String line) => line.isNotEmpty));
306 } on FileSystemException catch (e) { 314 } on FileSystemException catch (e) {
307 throw new Exception('Failed to read file specified by $lastArg : $e'); 315 throw new Exception('Failed to read file specified by $lastArg : $e');
308 } 316 }
309 } 317 }
310 return args; 318 return args;
311 } 319 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/context/builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698