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

Unified Diff: pkg/analysis_server/tool/spec/codegen_dart_protocol.dart

Issue 1398293002: Move the wire protocol support into the public API (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Add missed files Created 5 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: pkg/analysis_server/tool/spec/codegen_dart_protocol.dart
diff --git a/pkg/analysis_server/tool/spec/codegen_dart_protocol.dart b/pkg/analysis_server/tool/spec/codegen_dart_protocol.dart
index c7e387b45e626e9dde4ebdcf4c2c8a7fe65ad315..a8bd4dc8079f26f4f8942e8dd5d7ea682fb00296 100644
--- a/pkg/analysis_server/tool/spec/codegen_dart_protocol.dart
+++ b/pkg/analysis_server/tool/spec/codegen_dart_protocol.dart
@@ -36,7 +36,7 @@ const Map<String, String> specialElementFlags = const {
};
final GeneratedFile target =
- new GeneratedFile('../../lib/src/generated_protocol.dart', () {
+ new GeneratedFile('../../lib/plugin/protocol/generated_protocol.dart', () {
CodegenProtocolVisitor visitor = new CodegenProtocolVisitor(readApi());
return visitor.collectCode(visitor.visitApi);
});
@@ -67,6 +67,13 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
};
/**
+ * The disclaimer added to the documentation comment for each of the classes
+ * that are generated.
+ */
+ static const String disclaimer =
+ 'Clients are not expected to subtype this class.';
+
+ /**
* Visitor used to produce doc comments.
*/
final ToHtmlVisitor toHtmlVisitor;
@@ -100,13 +107,13 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
String itemTypeName = dartType(resolvedType.itemType);
String subComparison = compareEqualsCode(resolvedType.itemType, 'a', 'b');
String closure = '($itemTypeName a, $itemTypeName b) => $subComparison';
- return '_listEqual($thisVar, $otherVar, $closure)';
+ return 'listEqual($thisVar, $otherVar, $closure)';
} else if (resolvedType is TypeMap) {
String valueTypeName = dartType(resolvedType.valueType);
String subComparison =
compareEqualsCode(resolvedType.valueType, 'a', 'b');
String closure = '($valueTypeName a, $valueTypeName b) => $subComparison';
- return '_mapEqual($thisVar, $otherVar, $closure)';
+ return 'mapEqual($thisVar, $otherVar, $closure)';
}
throw new Exception(
"Don't know how to compare for equality: $resolvedType");
@@ -212,6 +219,9 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
toHtmlVisitor.p(() {
toHtmlVisitor.write(impliedType.humanReadableName);
});
+ toHtmlVisitor.p(() {
+ toHtmlVisitor.write(disclaimer);
+ });
}));
writeln('class $className {');
indent(() {
@@ -242,6 +252,9 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
if (impliedType.type != null) {
toHtmlVisitor.showType(null, impliedType.type);
}
+ toHtmlVisitor.p(() {
+ toHtmlVisitor.write(disclaimer);
+ });
}));
writeln('class $className implements Enum {');
indent(() {
@@ -366,6 +379,9 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
if (impliedType.type != null) {
toHtmlVisitor.showType(null, impliedType.type);
}
+ toHtmlVisitor.p(() {
+ toHtmlVisitor.write(disclaimer);
+ });
}));
write('class $className');
if (impliedType.kind == 'refactoringFeedback') {
@@ -553,7 +569,7 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
writeln('factory RefactoringFeedback.fromJson(JsonDecoder jsonDecoder, '
'String jsonPath, Object json, Map responseJson) {');
indent(() {
- writeln('return _refactoringFeedbackFromJson(jsonDecoder, jsonPath, '
+ writeln('return refactoringFeedbackFromJson(jsonDecoder, jsonPath, '
'json, responseJson);');
});
writeln('}');
@@ -563,7 +579,7 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
writeln('factory RefactoringOptions.fromJson(JsonDecoder jsonDecoder, '
'String jsonPath, Object json, RefactoringKind kind) {');
indent(() {
- writeln('return _refactoringOptionsFromJson(jsonDecoder, jsonPath, '
+ writeln('return refactoringOptionsFromJson(jsonDecoder, jsonPath, '
'json, kind);');
});
writeln('}');
@@ -652,9 +668,9 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
} else {
valueToCombine = '${field.name}.hashCode';
}
- writeln('hash = _JenkinsSmiHash.combine(hash, $valueToCombine);');
+ writeln('hash = JenkinsSmiHash.combine(hash, $valueToCombine);');
}
- writeln('return _JenkinsSmiHash.finish(hash);');
+ writeln('return JenkinsSmiHash.finish(hash);');
}
});
writeln('}');
@@ -678,7 +694,7 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
]);
writeln(
'static RefactoringProblemSeverity max(RefactoringProblemSeverity a, RefactoringProblemSeverity b) =>');
- writeln(' _maxRefactoringProblemSeverity(a, b);');
+ writeln(' maxRefactoringProblemSeverity(a, b);');
return true;
default:
return false;
@@ -734,7 +750,7 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
new dom.Text('Adds [edit] to the [FileEdit] for the given [file].')
]);
writeln('void addEdit(String file, int fileStamp, SourceEdit edit) =>');
- writeln(' _addEditToSourceChange(this, file, fileStamp, edit);');
+ writeln(' addEditToSourceChange(this, file, fileStamp, edit);');
writeln();
docComment([new dom.Text('Adds the given [FileEdit].')]);
writeln('void addFileEdit(SourceFileEdit edit) {');
@@ -755,22 +771,22 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
'Returns the [FileEdit] for the given [file], maybe `null`.')
]);
writeln('SourceFileEdit getFileEdit(String file) =>');
- writeln(' _getChangeFileEdit(this, file);');
+ writeln(' getChangeFileEdit(this, file);');
return true;
case 'SourceEdit':
docComment([
new dom.Text(
'Get the result of applying the edit to the given [code].')
]);
- writeln('String apply(String code) => _applyEdit(code, this);');
+ writeln('String apply(String code) => applyEdit(code, this);');
return true;
case 'SourceFileEdit':
docComment([new dom.Text('Adds the given [Edit] to the list.')]);
- writeln('void add(SourceEdit edit) => _addEditForSource(this, edit);');
+ writeln('void add(SourceEdit edit) => addEditForSource(this, edit);');
writeln();
docComment([new dom.Text('Adds the given [Edit]s.')]);
writeln('void addAll(Iterable<SourceEdit> edits) =>');
- writeln(' _addAllEditsForSource(this, edits);');
+ writeln(' addAllEditsForSource(this, edits);');
return true;
default:
return false;
@@ -812,7 +828,7 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
]);
writeln(
'static String applySequence(String code, Iterable<SourceEdit> edits) =>');
- writeln(' _applySequence(code, edits);');
+ writeln(' applySequenceOfEdits(code, edits);');
return true;
default:
return false;
@@ -929,12 +945,12 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
} else {
switch (type.typeName) {
case 'String':
- return new FromJsonFunction('jsonDecoder._decodeString');
+ return new FromJsonFunction('jsonDecoder.decodeString');
case 'bool':
- return new FromJsonFunction('jsonDecoder._decodeBool');
+ return new FromJsonFunction('jsonDecoder.decodeBool');
case 'int':
case 'long':
- return new FromJsonFunction('jsonDecoder._decodeInt');
+ return new FromJsonFunction('jsonDecoder.decodeInt');
case 'object':
return new FromJsonIdentity();
default:
@@ -950,11 +966,11 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
}
FromJsonCode valueCode = fromJsonCode(type.valueType);
if (keyCode.isIdentity && valueCode.isIdentity) {
- return new FromJsonFunction('jsonDecoder._decodeMap');
+ return new FromJsonFunction('jsonDecoder.decodeMap');
} else {
return new FromJsonSnippet((String jsonPath, String json) {
StringBuffer result = new StringBuffer();
- result.write('jsonDecoder._decodeMap($jsonPath, $json');
+ result.write('jsonDecoder.decodeMap($jsonPath, $json');
if (!keyCode.isIdentity) {
result.write(', keyDecoder: ${keyCode.asClosure}');
}
@@ -968,10 +984,10 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
} else if (type is TypeList) {
FromJsonCode itemCode = fromJsonCode(type.itemType);
if (itemCode.isIdentity) {
- return new FromJsonFunction('jsonDecoder._decodeList');
+ return new FromJsonFunction('jsonDecoder.decodeList');
} else {
return new FromJsonSnippet((String jsonPath, String json) =>
- 'jsonDecoder._decodeList($jsonPath, $json, ${itemCode.asClosure})');
+ 'jsonDecoder.decodeList($jsonPath, $json, ${itemCode.asClosure})');
}
} else if (type is TypeUnion) {
List<String> decoders = <String>[];
@@ -994,7 +1010,7 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
}
}
return new FromJsonSnippet((String jsonPath, String json) =>
- 'jsonDecoder._decodeUnion($jsonPath, $json, ${literalString(type.field)}, {${decoders.join(', ')}})');
+ 'jsonDecoder.decodeUnion($jsonPath, $json, ${literalString(type.field)}, {${decoders.join(', ')}})');
} else {
throw new Exception("Can't convert $type from JSON");
}
@@ -1080,7 +1096,8 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
visitApi() {
outputHeader();
writeln();
- writeln('part of protocol;');
+ writeln('part of analysis_server.plugin.protocol.protocol;');
+ writeln();
emitClasses();
}
}

Powered by Google App Engine
This is Rietveld 408576698