mirror of
https://github.com/dart-lang/sdk
synced 2024-10-06 14:07:57 +00:00
Add dartfix --server option
This adds a --server option for specifying the analyis server snapshot to be used when calculating fixes. Change-Id: I0adc3148c030d23a9a62883d842851709cb78168 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106220 Auto-Submit: Dan Rubel <danrubel@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Dan Rubel <danrubel@google.com>
This commit is contained in:
parent
3619d26f70
commit
f7d3e5bebf
|
@ -261,15 +261,19 @@ These fixes are NOT automatically applied, but may be enabled using --$includeOp
|
|||
}
|
||||
|
||||
Future<bool> startServer(Options options) async {
|
||||
if (options.verbose) {
|
||||
logger.trace('Dart SDK version ${Platform.version}');
|
||||
logger.trace(' ${Platform.resolvedExecutable}');
|
||||
logger.trace('dartfix');
|
||||
logger.trace(' ${Platform.script.toFilePath()}');
|
||||
}
|
||||
// Automatically run analysis server from source
|
||||
// if this command line tool is being run from source within the SDK repo.
|
||||
String serverPath = findServerPath();
|
||||
String serverPath = options.serverSnapshot ?? findServerPath();
|
||||
if (options.verbose) {
|
||||
logger.trace('''
|
||||
Dart SDK version ${Platform.version}
|
||||
${Platform.resolvedExecutable}
|
||||
dartfix
|
||||
${Platform.script.toFilePath()}
|
||||
analysis server
|
||||
$serverPath
|
||||
''');
|
||||
}
|
||||
await server.start(
|
||||
clientId: 'dartfix',
|
||||
clientVersion: 'unspecified',
|
||||
|
|
|
@ -17,6 +17,7 @@ const overwriteOption = 'overwrite';
|
|||
const requiredOption = 'required';
|
||||
const _binaryName = 'dartfix';
|
||||
const _colorOption = 'color';
|
||||
const _serverSnapshot = 'server';
|
||||
|
||||
// options only supported by server 1.22.2 and greater
|
||||
const _helpOption = 'help';
|
||||
|
@ -29,6 +30,7 @@ class Options {
|
|||
|
||||
List<String> targets;
|
||||
final String sdkPath;
|
||||
final String serverSnapshot;
|
||||
|
||||
final bool requiredFixes;
|
||||
final List<String> includeFixes;
|
||||
|
@ -49,6 +51,7 @@ class Options {
|
|||
overwrite = results[overwriteOption] as bool,
|
||||
requiredFixes = results[requiredOption] as bool,
|
||||
sdkPath = _getSdkPath(),
|
||||
serverSnapshot = results[_serverSnapshot],
|
||||
showHelp = results[_helpOption] as bool || results.arguments.isEmpty,
|
||||
targets = results.rest,
|
||||
useColor = results.wasParsed(_colorOption)
|
||||
|
@ -92,6 +95,8 @@ class Options {
|
|||
help: 'Display this help message.',
|
||||
defaultsTo: false,
|
||||
negatable: false)
|
||||
..addOption(_serverSnapshot,
|
||||
help: 'Path to the analysis server snapshot file.', valueHelp: 'path')
|
||||
..addFlag(_verboseOption,
|
||||
abbr: 'v',
|
||||
defaultsTo: false,
|
||||
|
@ -109,7 +114,6 @@ class Options {
|
|||
} on FormatException catch (e) {
|
||||
logger ??= new Logger.standard(ansi: new Ansi(Ansi.terminalSupportsAnsi));
|
||||
logger.stderr(e.message);
|
||||
logger.stderr('\n');
|
||||
_showUsage(parser, logger);
|
||||
context.exit(15);
|
||||
}
|
||||
|
@ -194,6 +198,7 @@ Usage: $_binaryName [options...] <directory paths>
|
|||
out(parser.usage);
|
||||
out(showHelpHint
|
||||
? '''
|
||||
|
||||
Use --$_helpOption to display the fixes that can be specified using either
|
||||
--$includeOption or --$excludeOption.'''
|
||||
: '');
|
||||
|
|
|
@ -6,7 +6,7 @@ description:
|
|||
and fixing common issues.
|
||||
homepage: https://github.com/dart-lang/sdk/tree/master/pkg/dartfix
|
||||
environment:
|
||||
sdk: '>=2.2.0 <3.0.0'
|
||||
sdk: '>=2.3.0 <3.0.0'
|
||||
|
||||
# Add the bin/dartfix.dart script to the scripts pub installs.
|
||||
executables:
|
||||
|
|
|
@ -27,11 +27,13 @@ main() {
|
|||
test('fix example', () async {
|
||||
final driver = new Driver();
|
||||
final testContext = new TestContext();
|
||||
final testLogger = new TestLogger();
|
||||
final testLogger = new TestLogger(debug: _debug);
|
||||
String exampleSource = await exampleFile.readAsString();
|
||||
|
||||
await driver.start([exampleDir.path],
|
||||
testContext: testContext, testLogger: testLogger);
|
||||
await driver.start([
|
||||
if (_debug) '-v',
|
||||
exampleDir.path,
|
||||
], testContext: testContext, testLogger: testLogger);
|
||||
if (_debug) {
|
||||
print(testLogger.stderrBuffer.toString());
|
||||
print(testLogger.stdoutBuffer.toString());
|
||||
|
|
|
@ -30,6 +30,7 @@ main() {
|
|||
String normalOut,
|
||||
bool requiredFixes = false,
|
||||
bool overwrite = false,
|
||||
String serverSnapshot,
|
||||
List<String> targetSuffixes,
|
||||
bool verbose = false,
|
||||
}) {
|
||||
|
@ -53,6 +54,7 @@ main() {
|
|||
expect(options.force, force);
|
||||
expect(options.requiredFixes, requiredFixes);
|
||||
expect(options.overwrite, overwrite);
|
||||
expect(options.serverSnapshot, serverSnapshot);
|
||||
expect(options.showHelp, showHelp);
|
||||
expect(options.includeFixes, includeFixes);
|
||||
expect(options.excludeFixes, excludeFixes);
|
||||
|
@ -119,6 +121,10 @@ main() {
|
|||
parse(['--required', 'foo'], requiredFixes: true);
|
||||
});
|
||||
|
||||
test('server snapshot', () {
|
||||
parse(['--server', 'some/path', 'foo'], serverSnapshot: 'some/path');
|
||||
});
|
||||
|
||||
test('simple', () {
|
||||
parse(['foo'], targetSuffixes: ['foo']);
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue