Restore generation of protocol_common in analysis_server_client

Change-Id: I897380a721c669671b2207b74587b61ed56f23f5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175183
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
Brian Wilkerson 2020-12-06 04:59:04 +00:00 committed by commit-bot@chromium.org
parent d518832a7c
commit ce74d6e4ed
3 changed files with 364 additions and 188 deletions

View file

@ -10,7 +10,16 @@ import 'codegen_dart_protocol.dart';
import 'from_html.dart';
import 'implied_types.dart';
GeneratedFile target(bool responseRequiresRequestTime) =>
GeneratedFile clientTarget(bool responseRequiresRequestTime) => GeneratedFile(
'../analysis_server_client/lib/src/protocol/protocol_common.dart',
(String pkgPath) async {
var visitor = CodegenCommonVisitor(
path.basename(pkgPath), responseRequiresRequestTime, readApi(pkgPath),
forClient: true);
return visitor.collectCode(visitor.visitApi);
});
GeneratedFile pluginTarget(bool responseRequiresRequestTime) =>
GeneratedFile('lib/protocol/protocol_common.dart', (String pkgPath) async {
var visitor = CodegenCommonVisitor(path.basename(pkgPath),
responseRequiresRequestTime, readApi(pkgPath));
@ -20,21 +29,34 @@ GeneratedFile target(bool responseRequiresRequestTime) =>
/// A visitor that produces Dart code defining the common types associated with
/// the API.
class CodegenCommonVisitor extends CodegenProtocolVisitor {
final bool forClient;
/// Initialize a newly created visitor to generate code in the package with
/// the given [packageName] corresponding to the types in the given [api] that
/// are common to multiple protocols.
CodegenCommonVisitor(
String packageName, bool responseRequiresRequestTime, Api api)
String packageName, bool responseRequiresRequestTime, Api api,
{this.forClient = false})
: super(packageName, responseRequiresRequestTime, api);
@override
void emitImports() {
writeln("import 'dart:convert' hide JsonDecoder;");
writeln();
writeln("import 'package:analyzer/src/generated/utilities_general.dart';");
writeln("import 'package:$packageName/protocol/protocol.dart';");
writeln(
"import 'package:$packageName/src/protocol/protocol_internal.dart';");
if (forClient) {
writeln(
"import 'package:analysis_server_client/src/protocol/protocol_util.dart';");
writeln(
"import 'package:analysis_server_client/src/protocol/protocol_base.dart';");
writeln(
"import 'package:analysis_server_client/src/protocol/protocol_internal.dart';");
} else {
writeln(
"import 'package:analyzer/src/generated/utilities_general.dart';");
writeln("import 'package:$packageName/protocol/protocol.dart';");
writeln(
"import 'package:$packageName/src/protocol/protocol_internal.dart';");
}
}
@override

View file

@ -27,7 +27,8 @@ List<GeneratedContent> get allTargets {
targets.add(codegen_dart_protocol.target(true));
targets.add(codegen_inttest_methods.target);
targets.add(codegen_matchers.target);
targets.add(codegen_protocol_common.target(true));
targets.add(codegen_protocol_common.pluginTarget(true));
targets.add(codegen_protocol_common.clientTarget(true));
targets.add(codegen_protocol_constants.target);
targets.add(to_html.target);
return targets;