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

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

Issue 2745653012: enable/disable default package contributed analysis options (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
« 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 lintsFlag = 'lints';
24 const String noImplicitCastsFlag = 'no-implicit-casts'; 24 const String noImplicitCastsFlag = 'no-implicit-casts';
25 const String noImplicitDynamicFlag = 'no-implicit-dynamic'; 25 const String noImplicitDynamicFlag = 'no-implicit-dynamic';
26 const String packageDefaultAnalysisOptions = 'package-default-analysis-options';
26 const String packageRootOption = 'package-root'; 27 const String packageRootOption = 'package-root';
27 const String packagesOption = 'packages'; 28 const String packagesOption = 'packages';
28 const String sdkPathOption = 'dart-sdk'; 29 const String sdkPathOption = 'dart-sdk';
29 const String sdkSummaryPathOption = 'dart-sdk-summary'; 30 const String sdkSummaryPathOption = 'dart-sdk-summary';
30 const String strongModeFlag = 'strong'; 31 const String strongModeFlag = 'strong';
31 32
33 const String bazelAnalysisOptionsPath =
34 'package:dart.analysis_options/default.yaml';
35 const String flutterAnalysisOptionsPath =
36 'package:flutter/analysis_options_user.yaml';
37
32 /** 38 /**
33 * Update [options] with the value of each analysis option command line flag. 39 * Update [options] with the value of each analysis option command line flag.
34 */ 40 */
35 void applyAnalysisOptionFlags(AnalysisOptionsImpl options, ArgResults args, 41 void applyAnalysisOptionFlags(AnalysisOptionsImpl options, ArgResults args,
36 {void verbosePrint(String text)}) { 42 {void verbosePrint(String text)}) {
37 void verbose(String text) { 43 void verbose(String text) {
38 if (verbosePrint != null) { 44 if (verbosePrint != null) {
39 verbosePrint('Analysis options: $text'); 45 verbosePrint('Analysis options: $text');
40 } 46 }
41 } 47 }
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 builderOptions.argResults = args; 86 builderOptions.argResults = args;
81 // 87 //
82 // File locations. 88 // File locations.
83 // 89 //
84 builderOptions.dartSdkSummaryPath = args[sdkSummaryPathOption]; 90 builderOptions.dartSdkSummaryPath = args[sdkSummaryPathOption];
85 builderOptions.defaultAnalysisOptionsFilePath = 91 builderOptions.defaultAnalysisOptionsFilePath =
86 args[analysisOptionsFileOption]; 92 args[analysisOptionsFileOption];
87 builderOptions.defaultPackageFilePath = args[packagesOption]; 93 builderOptions.defaultPackageFilePath = args[packagesOption];
88 builderOptions.defaultPackagesDirectoryPath = args[packageRootOption]; 94 builderOptions.defaultPackagesDirectoryPath = args[packageRootOption];
89 // 95 //
96 // Flags.
97 //
98 builderOptions.packageDefaultAnalysisOptions =
99 args[packageDefaultAnalysisOptions];
100 //
90 // Analysis options. 101 // Analysis options.
91 // 102 //
92 AnalysisOptionsImpl defaultOptions = new AnalysisOptionsImpl(); 103 AnalysisOptionsImpl defaultOptions = new AnalysisOptionsImpl();
93 applyAnalysisOptionFlags(defaultOptions, args); 104 applyAnalysisOptionFlags(defaultOptions, args);
94 if (strongMode != null) { 105 if (strongMode != null) {
95 defaultOptions.strongMode = strongMode; 106 defaultOptions.strongMode = strongMode;
96 } 107 }
97 if (trackCacheDependencies != null) { 108 if (trackCacheDependencies != null) {
98 defaultOptions.trackCacheDependencies = trackCacheDependencies; 109 defaultOptions.trackCacheDependencies = trackCacheDependencies;
99 } 110 }
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 183
173 // 184 //
174 // Hidden flags and options. 185 // Hidden flags and options.
175 // 186 //
176 parser.addOption(defineVariableOption, 187 parser.addOption(defineVariableOption,
177 abbr: 'D', 188 abbr: 'D',
178 allowMultiple: true, 189 allowMultiple: true,
179 help: 'Define environment variables. For example, "-Dfoo=bar" defines an ' 190 help: 'Define environment variables. For example, "-Dfoo=bar" defines an '
180 'environment variable named "foo" whose value is "bar".', 191 'environment variable named "foo" whose value is "bar".',
181 hide: hide); 192 hide: hide);
193 parser.addFlag(packageDefaultAnalysisOptions,
194 help: 'If an analysis options file is not explicitly specified '
195 'via the "--$analysisOptionsFileOption" option\n'
196 'and an analysis options file cannot be found '
197 'in the project directory or any parent directory,\n'
198 'then look for analysis options in the following locations:\n'
199 '- $flutterAnalysisOptionsPath\n'
200 '- $bazelAnalysisOptionsPath',
201 defaultsTo: true,
202 negatable: true,
203 hide: hide);
182 parser.addOption(packagesOption, 204 parser.addOption(packagesOption,
183 help: 'The path to the package resolution configuration file, which ' 205 help: 'The path to the package resolution configuration file, which '
184 'supplies a mapping of package names\nto paths. This option cannot be ' 206 'supplies a mapping of package names\nto paths. This option cannot be '
185 'used with --package-root.', 207 'used with --package-root.',
186 hide: ddc); 208 hide: ddc);
187 parser.addOption(sdkSummaryPathOption, 209 parser.addOption(sdkSummaryPathOption,
188 help: 'The path to the Dart SDK summary file.', hide: hide); 210 help: 'The path to the Dart SDK summary file.', hide: hide);
189 parser.addFlag(enableStrictCallChecksFlag, 211 parser.addFlag(enableStrictCallChecksFlag,
190 help: 'Fix issue 21938.', 212 help: 'Fix issue 21938.',
191 defaultsTo: false, 213 defaultsTo: false,
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 .replaceAll('\r\n', '\n') 349 .replaceAll('\r\n', '\n')
328 .replaceAll('\r', '\n') 350 .replaceAll('\r', '\n')
329 .split('\n') 351 .split('\n')
330 .where((String line) => line.isNotEmpty)); 352 .where((String line) => line.isNotEmpty));
331 } on FileSystemException catch (e) { 353 } on FileSystemException catch (e) {
332 throw new Exception('Failed to read file specified by $lastArg : $e'); 354 throw new Exception('Failed to read file specified by $lastArg : $e');
333 } 355 }
334 } 356 }
335 return args; 357 return args;
336 } 358 }
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