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

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

Issue 2584293003: DDC/AnalyzerCLI common cmdline option processing (Closed)
Patch Set: 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
« no previous file with comments | « no previous file | pkg/analyzer_cli/lib/src/options.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';
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 return new DartSdkManager( 97 return new DartSdkManager(
98 sdkPath ?? FolderBasedDartSdk.defaultSdkDirectory(resourceProvider), 98 sdkPath ?? FolderBasedDartSdk.defaultSdkDirectory(resourceProvider),
99 canUseSummaries); 99 canUseSummaries);
100 } 100 }
101 101
102 /** 102 /**
103 * Add the standard flags and options to the given [parser]. The standard flags 103 * Add the standard flags and options to the given [parser]. The standard flags
104 * are those that are typically used to control the way in which the code is 104 * are those that are typically used to control the way in which the code is
105 * analyzed. 105 * analyzed.
106 */ 106 */
107 void defineAnalysisArguments(ArgParser parser, {bool hide: true}) { 107 void defineAnalysisArguments(ArgParser parser, {bool hide: true, ddc: false}) {
Brian Wilkerson 2016/12/19 17:45:36 'ddc' --> 'bool ddc' I'm not fond of the client-s
danrubel 2016/12/19 21:21:17 Yes, this is temporary until I can normalize DDC o
108 defineDDCAnalysisArguments(parser, hide: hide); 108 parser.addOption(defineVariableOption,
109 abbr: 'D',
110 allowMultiple: true,
111 help: 'Define environment variables. For example, "-Dfoo=bar" defines an '
112 'environment variable named "foo" whose value is "bar".');
113
114 parser.addOption(sdkPathOption, help: 'The path to the Dart SDK.');
115 parser.addOption(sdkSummaryPathOption,
116 help: 'The path to the Dart SDK summary file.', hide: hide);
109 117
110 parser.addOption(analysisOptionsFileOption, 118 parser.addOption(analysisOptionsFileOption,
111 help: 'Path to an analysis options file.'); 119 help: 'Path to an analysis options file.', hide: ddc);
120
121 parser.addOption(packageRootOption,
122 abbr: 'p',
123 help: 'The path to a package root directory (deprecated). '
124 'This option cannot be used with --packages.');
112 parser.addOption(packagesOption, 125 parser.addOption(packagesOption,
113 help: 'The path to the package resolution configuration file, which ' 126 help: 'The path to the package resolution configuration file, which '
114 'supplies a mapping of package names to paths. This option cannot be ' 127 'supplies a mapping of package names to paths. This option cannot be '
115 'used with --package-root.'); 128 'used with --package-root.',
129 hide: ddc);
116 130
117 parser.addFlag(strongModeFlag, 131 parser.addFlag(strongModeFlag,
118 help: 'Enable strong static checks (https://goo.gl/DqcBsw)'); 132 help: 'Enable strong static checks (https://goo.gl/DqcBsw)', hide: ddc);
Brian Wilkerson 2016/12/19 17:45:36 I think this needs to include 'defaultsTo: ddc,'.
danrubel 2016/12/19 21:21:17 Good point. Done.
119 parser.addFlag(noImplicitCastsFlag, 133 parser.addFlag(noImplicitCastsFlag,
120 negatable: false, 134 negatable: false,
121 help: 'Disable implicit casts in strong mode (https://goo.gl/cTLz40)'); 135 help: 'Disable implicit casts in strong mode (https://goo.gl/cTLz40)',
136 hide: ddc);
122 parser.addFlag(noImplicitDynamicFlag, 137 parser.addFlag(noImplicitDynamicFlag,
123 negatable: false, 138 negatable: false,
124 help: 'Disable implicit dynamic (https://goo.gl/m0UgXD)'); 139 help: 'Disable implicit dynamic (https://goo.gl/m0UgXD)',
140 hide: ddc);
125 // 141 //
126 // Hidden flags and options. 142 // Hidden flags and options.
127 // 143 //
128 // parser.addFlag(enableNullAwareOperatorsFlag, // 'enable-null-aware-operators ' 144 // parser.addFlag(enableNullAwareOperatorsFlag, // 'enable-null-aware-operators '
129 // help: 'Enable support for null-aware operators (DEP 9).', 145 // help: 'Enable support for null-aware operators (DEP 9).',
130 // defaultsTo: false, 146 // defaultsTo: false,
131 // negatable: false, 147 // negatable: false,
132 // hide: hide); 148 // hide: hide || ddc);
133 parser.addFlag(enableStrictCallChecksFlag, 149 parser.addFlag(enableStrictCallChecksFlag,
134 help: 'Fix issue 21938.', 150 help: 'Fix issue 21938.',
135 defaultsTo: false, 151 defaultsTo: false,
136 negatable: false, 152 negatable: false,
137 hide: hide); 153 hide: hide || ddc);
138 parser.addFlag(enableInitializingFormalAccessFlag, 154 parser.addFlag(enableInitializingFormalAccessFlag,
139 help: 155 help:
140 'Enable support for allowing access to field formal parameters in a ' 156 'Enable support for allowing access to field formal parameters in a '
141 'constructor\'s initializer list', 157 'constructor\'s initializer list',
142 defaultsTo: false, 158 defaultsTo: false,
143 negatable: false, 159 negatable: false,
144 hide: hide); 160 hide: hide || ddc);
145 parser.addFlag(enableSuperInMixinFlag, 161 parser.addFlag(enableSuperInMixinFlag,
146 help: 'Relax restrictions on mixins (DEP 34).', 162 help: 'Relax restrictions on mixins (DEP 34).',
147 defaultsTo: false, 163 defaultsTo: false,
148 negatable: false, 164 negatable: false,
149 hide: hide); 165 hide: hide || ddc);
150 // parser.addFlag('enable_type_checks', 166 // parser.addFlag('enable_type_checks',
151 // help: 'Check types in constant evaluation.', 167 // help: 'Check types in constant evaluation.',
152 // defaultsTo: false, 168 // defaultsTo: false,
153 // negatable: false, 169 // negatable: false,
154 // hide: hide); 170 // hide: hide || ddc);
155 } 171 }
156 172
157 /** 173 /**
158 * Add the DDC analysis flags and options to the given [parser].
159 *
160 * TODO(danrubel) Update DDC to support all the options defined in
161 * the [defineAnalysisOptions] method above, then have DDC call that method
162 * and remove this method.
163 */
164 void defineDDCAnalysisArguments(ArgParser parser, {bool hide: true}) {
165 parser.addOption(defineVariableOption,
166 abbr: 'D',
167 allowMultiple: true,
168 help: 'Define environment variables. For example, "-Dfoo=bar" defines an '
169 'environment variable named "foo" whose value is "bar".');
170 parser.addOption(sdkPathOption, help: 'The path to the Dart SDK.');
171 parser.addOption(sdkSummaryPathOption,
172 help: 'The path to the Dart SDK summary file.', hide: hide);
173 parser.addOption(packageRootOption,
174 abbr: 'p',
175 help: 'The path to a package root directory (deprecated). '
176 'This option cannot be used with --packages.');
177 }
178
179 /**
180 * Find arguments of the form -Dkey=value 174 * Find arguments of the form -Dkey=value
181 * or argument pairs of the form -Dkey value 175 * or argument pairs of the form -Dkey value
182 * and place those key/value pairs into [definedVariables]. 176 * and place those key/value pairs into [definedVariables].
183 * Return a list of arguments with the key/value arguments removed. 177 * Return a list of arguments with the key/value arguments removed.
184 */ 178 */
185 List<String> extractDefinedVariables( 179 List<String> extractDefinedVariables(
186 List<String> args, Map<String, String> definedVariables) { 180 List<String> args, Map<String, String> definedVariables) {
187 //TODO(danrubel) extracting defined variables is already handled by the 181 //TODO(danrubel) extracting defined variables is already handled by the
188 // createContextBuilderOptions method. 182 // createContextBuilderOptions method.
189 // Long term we should switch to using that instead. 183 // Long term we should switch to using that instead.
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 .replaceAll('\r\n', '\n') 288 .replaceAll('\r\n', '\n')
295 .replaceAll('\r', '\n') 289 .replaceAll('\r', '\n')
296 .split('\n') 290 .split('\n')
297 .where((String line) => line.isNotEmpty)); 291 .where((String line) => line.isNotEmpty));
298 } on FileSystemException catch (e) { 292 } on FileSystemException catch (e) {
299 throw new Exception('Failed to read file specified by $lastArg : $e'); 293 throw new Exception('Failed to read file specified by $lastArg : $e');
300 } 294 }
301 } 295 }
302 return args; 296 return args;
303 } 297 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer_cli/lib/src/options.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698