Remove dartfix dependencies on analysis server
This replaces dartfix dependencies on ...
* analysis_server
* analyzer (except for testing)
* analyzer_plugins
... with a dependency on analysis_server_client.
Change-Id: If511de69333e925ae082fa06c5114188c3c405b1
Reviewed-on: https://dart-review.googlesource.com/c/81342
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
diff --git a/pkg/analysis_server_client/lib/protocol.dart b/pkg/analysis_server_client/lib/protocol.dart
index 197e49c..ca508e8 100644
--- a/pkg/analysis_server_client/lib/protocol.dart
+++ b/pkg/analysis_server_client/lib/protocol.dart
@@ -5,4 +5,6 @@
export 'package:analysis_server_client/src/protocol/protocol_base.dart';
export 'package:analysis_server_client/src/protocol/protocol_common.dart';
export 'package:analysis_server_client/src/protocol/protocol_constants.dart';
+export 'package:analysis_server_client/src/protocol/protocol_internal.dart'
+ show ResponseDecoder;
export 'package:analysis_server_client/src/protocol/protocol_generated.dart';
diff --git a/pkg/dartfix/lib/src/driver.dart b/pkg/dartfix/lib/src/driver.dart
index 8e0706e..80b6c11 100644
--- a/pkg/dartfix/lib/src/driver.dart
+++ b/pkg/dartfix/lib/src/driver.dart
@@ -5,10 +5,7 @@
import 'dart:async';
import 'dart:io' show File, Directory;
-import 'package:analysis_server/protocol/protocol_constants.dart';
-import 'package:analysis_server/protocol/protocol_generated.dart';
-import 'package:analysis_server/src/protocol/protocol_internal.dart';
-import 'package:analyzer_plugin/protocol/protocol_common.dart';
+import 'package:analysis_server_client/protocol.dart';
import 'package:cli_util/cli_logging.dart';
import 'package:dartfix/src/context.dart';
import 'package:dartfix/src/options.dart';
diff --git a/pkg/dartfix/lib/src/options.dart b/pkg/dartfix/lib/src/options.dart
index 70af515..bd51025 100644
--- a/pkg/dartfix/lib/src/options.dart
+++ b/pkg/dartfix/lib/src/options.dart
@@ -2,7 +2,8 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-import 'package:analyzer/src/util/sdk.dart';
+import 'dart:io';
+
import 'package:dartfix/src/context.dart';
import 'package:args/args.dart';
import 'package:cli_util/cli_logging.dart';
@@ -14,7 +15,7 @@
Logger logger;
List<String> targets;
- String sdkPath;
+ final String sdkPath;
final bool force;
final bool overwrite;
final bool verbose;
@@ -79,15 +80,16 @@
context.exit(1);
}
- // Infer the Dart SDK location
- options.sdkPath = getSdkPath(args);
+ // Validate the Dart SDK location
String sdkPath = options.sdkPath;
if (sdkPath == null) {
logger.stderr('No Dart SDK found.');
_showUsage(parser, logger);
+ context.exit(15);
}
if (!context.exists(sdkPath)) {
logger.stderr('Invalid Dart SDK path: $sdkPath');
+ _showUsage(parser, logger);
context.exit(15);
}
@@ -128,7 +130,8 @@
force = results[forceOption] as bool,
overwrite = results[overwriteOption] as bool,
verbose = results[_verboseOption] as bool,
- useColor = results.wasParsed('color') ? results['color'] as bool : null;
+ useColor = results.wasParsed('color') ? results['color'] as bool : null,
+ sdkPath = _getSdkPath();
String makeAbsoluteAndNormalize(String target) {
if (!path.isAbsolute(target)) {
@@ -137,6 +140,12 @@
return path.normalize(target);
}
+ static String _getSdkPath() {
+ return Platform.environment['DART_SDK'] != null
+ ? Platform.environment['DART_SDK']
+ : path.dirname(path.dirname(Platform.resolvedExecutable));
+ }
+
static _showUsage(ArgParser parser, Logger logger) {
logger.stderr('Usage: $_binaryName [options...] <directory paths>');
logger.stderr('');
diff --git a/pkg/dartfix/pubspec.yaml b/pkg/dartfix/pubspec.yaml
index e14ae2f..2349956 100644
--- a/pkg/dartfix/pubspec.yaml
+++ b/pkg/dartfix/pubspec.yaml
@@ -7,13 +7,10 @@
environment:
sdk: '>=2.0.0 <3.0.0'
dependencies:
- #TODO(danrubel) depend upon analysis_server_client rather than analysis_server
- # once analysis_server_client has been updated.
- analysis_server: any
- analyzer: ^0.33.0
- analyzer_plugin: any
+ analysis_server_client: ^2.0.0
args: any
cli_util: any
path: any
dev_dependencies:
+ analyzer: ^0.33.0
test: ^1.3.0