mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 01:59:38 +00:00
Generate common types into a separate library
R=danrubel@google.com Review-Url: https://codereview.chromium.org/2880443006 .
This commit is contained in:
parent
28e742a31c
commit
3085734ef6
|
@ -11,6 +11,7 @@ import 'package:analysis_server/src/plugin/result_converter.dart';
|
|||
import 'package:analysis_server/src/plugin/result_merger.dart';
|
||||
import 'package:analyzer/file_system/file_system.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_constants.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@ import 'package:analyzer/src/generated/gn.dart';
|
|||
import 'package:analyzer/src/util/glob.dart';
|
||||
import 'package:analyzer_plugin/channel/channel.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_constants.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart';
|
||||
import 'package:analyzer_plugin/src/channel/isolate_channel.dart';
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
import 'package:analysis_server/protocol/protocol_generated.dart' as server;
|
||||
import 'package:analysis_server/src/protocol/protocol_internal.dart' as server;
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
|
||||
|
||||
/**
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
import 'package:analysis_server/protocol/protocol_generated.dart' as server;
|
||||
import 'package:analysis_server/src/protocol/protocol_internal.dart' as server;
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
|
||||
|
||||
/**
|
||||
|
|
|
@ -6,6 +6,7 @@ import 'dart:collection';
|
|||
|
||||
import 'package:analysis_server/protocol/protocol_generated.dart'
|
||||
hide AnalysisErrorFixes;
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@ import 'package:analyzer/dart/ast/standard_resolution_map.dart';
|
|||
import 'package:analyzer/file_system/file_system.dart';
|
||||
import 'package:analyzer/src/generated/engine.dart';
|
||||
import 'package:analyzer/src/generated/source.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
|
||||
import 'package:test/test.dart';
|
||||
import 'package:test_reflective_loader/test_reflective_loader.dart';
|
||||
|
|
|
@ -14,6 +14,7 @@ import 'package:analysis_server/src/provisional/completion/dart/completion_dart.
|
|||
import 'package:analysis_server/src/services/completion/dart/completion_manager.dart';
|
||||
import 'package:analysis_server/src/services/completion/dart/contribution_sorter.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_constants.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
|
||||
import 'package:test/test.dart';
|
||||
|
|
|
@ -9,6 +9,7 @@ import 'package:analysis_server/protocol/protocol_generated.dart';
|
|||
import 'package:analysis_server/src/edit/edit_domain.dart';
|
||||
import 'package:analysis_server/src/plugin/plugin_manager.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
|
||||
import 'package:analyzer_plugin/src/protocol/protocol_internal.dart' as plugin;
|
||||
import 'package:plugin/manager.dart';
|
||||
|
|
|
@ -9,6 +9,7 @@ import 'package:analysis_server/protocol/protocol_generated.dart';
|
|||
import 'package:analysis_server/src/edit/edit_domain.dart';
|
||||
import 'package:analysis_server/src/plugin/plugin_manager.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
|
||||
import 'package:analyzer_plugin/src/protocol/protocol_internal.dart' as plugin;
|
||||
import 'package:plugin/manager.dart';
|
||||
|
|
|
@ -8,6 +8,7 @@ import 'package:analysis_server/src/channel/channel.dart';
|
|||
import 'package:analysis_server/src/plugin/notification_manager.dart';
|
||||
import 'package:analyzer/file_system/memory_file_system.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_constants.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
|
||||
import 'package:test/test.dart';
|
||||
|
|
|
@ -13,6 +13,7 @@ import 'package:analyzer/file_system/physical_file_system.dart';
|
|||
import 'package:analyzer/instrumentation/instrumentation.dart';
|
||||
import 'package:analyzer_plugin/channel/channel.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart'
|
||||
hide ContextRoot;
|
||||
import 'package:path/path.dart' as path;
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
import 'package:analysis_server/protocol/protocol_generated.dart' as server;
|
||||
import 'package:analyzer_plugin/protocol/protocol.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_constants.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
import 'package:analysis_server/protocol/protocol_generated.dart' as server;
|
||||
import 'package:analysis_server/src/plugin/request_converter.dart';
|
||||
import 'package:analysis_server/src/protocol/protocol_internal.dart' as server;
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
|
||||
import 'package:test/test.dart';
|
||||
import 'package:test_reflective_loader/test_reflective_loader.dart';
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
import 'package:analysis_server/protocol/protocol_generated.dart' as server;
|
||||
import 'package:analysis_server/src/plugin/result_converter.dart';
|
||||
import 'package:analysis_server/src/protocol/protocol_internal.dart' as server;
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
|
||||
import 'package:test/test.dart';
|
||||
import 'package:test_reflective_loader/test_reflective_loader.dart';
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
import 'package:analysis_server/protocol/protocol_generated.dart';
|
||||
import 'package:analysis_server/src/plugin/result_merger.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
|
||||
import 'package:test/test.dart';
|
||||
import 'package:test_reflective_loader/test_reflective_loader.dart';
|
||||
|
|
|
@ -12,6 +12,7 @@ import 'package:analyzer/src/dart/analysis/file_state.dart';
|
|||
import 'package:analyzer/src/generated/source.dart';
|
||||
import 'package:analyzer_plugin/channel/channel.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_constants.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart';
|
||||
import 'package:analyzer_plugin/src/protocol/protocol_internal.dart';
|
||||
|
|
5444
pkg/analyzer_plugin/lib/protocol/protocol_common.dart
Normal file
5444
pkg/analyzer_plugin/lib/protocol/protocol_common.dart
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -6,6 +6,7 @@ import 'dart:collection';
|
|||
import 'dart:convert' hide JsonDecoder;
|
||||
|
||||
import 'package:analyzer_plugin/protocol/protocol.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart';
|
||||
|
||||
final Map<String, RefactoringKind> REQUEST_ID_REFACTORING_KINDS =
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
import 'dart:async';
|
||||
|
||||
import 'package:analyzer/src/generated/source.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart';
|
||||
import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
|
||||
|
||||
/**
|
||||
|
|
|
@ -13,7 +13,7 @@ import 'package:analyzer/src/dart/ast/utilities.dart';
|
|||
import 'package:analyzer/src/generated/resolver.dart';
|
||||
import 'package:analyzer/src/generated/source.dart';
|
||||
import 'package:analyzer/src/generated/utilities_dart.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart'
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart'
|
||||
hide Element, ElementKind;
|
||||
import 'package:analyzer_plugin/src/utilities/change_builder/change_builder_core.dart';
|
||||
import 'package:analyzer_plugin/src/utilities/string_utilities.dart';
|
||||
|
|
|
@ -10,6 +10,7 @@ import 'package:analyzer/source/error_processor.dart' as analyzer;
|
|||
import 'package:analyzer/src/generated/engine.dart' as analyzer;
|
||||
import 'package:analyzer/src/generated/source.dart' as analyzer;
|
||||
import 'package:analyzer/src/generated/utilities_dart.dart' as analyzer;
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_constants.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
import 'dart:async';
|
||||
|
||||
import 'package:analyzer/src/generated/source.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart';
|
||||
import 'package:analyzer_plugin/src/utilities/change_builder/change_builder_core.dart';
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ import 'package:test/test.dart';
|
|||
|
||||
import 'integration_tests.dart';
|
||||
import 'protocol_matchers.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart';
|
||||
|
||||
/**
|
||||
* Convenience methods for running integration tests
|
||||
|
|
|
@ -7,6 +7,7 @@ import 'dart:collection';
|
|||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart';
|
||||
import 'package:path/path.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
|
|
@ -8,6 +8,7 @@ import 'package:analyzer/file_system/file_system.dart';
|
|||
import 'package:analyzer/file_system/memory_file_system.dart';
|
||||
import 'package:analyzer/src/dart/analysis/driver.dart';
|
||||
import 'package:analyzer_plugin/plugin/plugin.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart';
|
||||
import 'package:path/src/context.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
import 'package:analyzer/src/generated/source.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart';
|
||||
import 'package:analyzer_plugin/src/utilities/change_builder/change_builder_core.dart';
|
||||
import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
|
|
@ -14,7 +14,7 @@ import 'package:analyzer/src/generated/engine.dart';
|
|||
import 'package:analyzer/src/generated/resolver.dart';
|
||||
import 'package:analyzer/src/generated/source.dart';
|
||||
import 'package:analyzer/src/generated/testing/test_type_provider.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart';
|
||||
import 'package:analyzer_plugin/src/utilities/change_builder/change_builder_dart.dart';
|
||||
import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
|
||||
import 'package:analyzer_plugin/utilities/change_builder/change_builder_dart.dart';
|
||||
|
|
|
@ -13,6 +13,7 @@ import 'package:analyzer/src/error/codes.dart' as analyzer;
|
|||
import 'package:analyzer/src/generated/engine.dart' as analyzer;
|
||||
import 'package:analyzer/src/generated/source.dart' as analyzer;
|
||||
import 'package:analyzer/src/generated/utilities_dart.dart' as analyzer;
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_constants.dart' as plugin;
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
|
||||
import 'package:analyzer_plugin/utilities/analyzer_converter.dart';
|
||||
|
|
|
@ -358,6 +358,8 @@ class TypeDefinition extends ApiNode {
|
|||
final String name;
|
||||
final TypeDecl type;
|
||||
|
||||
bool isExternal = false;
|
||||
|
||||
TypeDefinition(this.name, this.type, dom.Element html,
|
||||
{bool experimental, bool deprecated})
|
||||
: super(html, experimental, deprecated);
|
||||
|
@ -492,6 +494,8 @@ class TypeReference extends TypeDecl {
|
|||
class Types extends ApiNode with IterableMixin<TypeDefinition> {
|
||||
final Map<String, TypeDefinition> types;
|
||||
|
||||
List<String> importUris = <String>[];
|
||||
|
||||
Types(this.types, dom.Element html, {bool experimental})
|
||||
: super(html, experimental, false);
|
||||
|
||||
|
|
|
@ -119,12 +119,9 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
|
|||
}
|
||||
|
||||
/**
|
||||
* Translate each type implied by the API to a class.
|
||||
* Translate each of the given [types] implied by the API to a class.
|
||||
*/
|
||||
void emitClasses() {
|
||||
List<ImpliedType> types = impliedTypes.values.toList();
|
||||
types.sort((first, second) =>
|
||||
capitalize(first.camelName).compareTo(capitalize(second.camelName)));
|
||||
void emitClasses(List<ImpliedType> types) {
|
||||
for (ImpliedType impliedType in types) {
|
||||
TypeDecl type = impliedType.type;
|
||||
String dartTypeName = capitalize(impliedType.camelName);
|
||||
|
@ -395,6 +392,20 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
|
|||
writeln('}');
|
||||
}
|
||||
|
||||
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';");
|
||||
for (String uri in api.types.importUris) {
|
||||
write("import '");
|
||||
write(uri);
|
||||
writeln("';");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Emit the class to encapsulate an object type.
|
||||
*/
|
||||
|
@ -1051,6 +1062,19 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a list of the classes to be emitted.
|
||||
*/
|
||||
List<ImpliedType> getClassesToEmit() {
|
||||
List<ImpliedType> types = impliedTypes.values.where((ImpliedType type) {
|
||||
ApiNode node = type.apiNode;
|
||||
return !(node is TypeDefinition && node.isExternal);
|
||||
}).toList();
|
||||
types.sort((first, second) =>
|
||||
capitalize(first.camelName).compareTo(capitalize(second.camelName)));
|
||||
return types;
|
||||
}
|
||||
|
||||
/**
|
||||
* True if the constructor argument for the given field should be optional.
|
||||
*/
|
||||
|
@ -1131,13 +1155,8 @@ class CodegenProtocolVisitor extends DartCodegenVisitor with CodeGenerator {
|
|||
visitApi() {
|
||||
outputHeader(year: '2017');
|
||||
writeln();
|
||||
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';");
|
||||
emitClasses();
|
||||
emitImports();
|
||||
emitClasses(getClassesToEmit());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -111,6 +111,11 @@ class CodegenInttestMethodsVisitor extends DartCodegenVisitor
|
|||
writeln();
|
||||
writeln("import 'integration_tests.dart';");
|
||||
writeln("import 'protocol_matchers.dart';");
|
||||
for (String uri in api.types.importUris) {
|
||||
write("import '");
|
||||
write(uri);
|
||||
writeln("';");
|
||||
}
|
||||
writeln();
|
||||
writeln('/**');
|
||||
writeln(' * Convenience methods for running integration tests');
|
||||
|
|
53
pkg/analyzer_plugin/tool/spec/codegen_protocol_common.dart
Normal file
53
pkg/analyzer_plugin/tool/spec/codegen_protocol_common.dart
Normal file
|
@ -0,0 +1,53 @@
|
|||
// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
|
||||
// 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/codegen/tools.dart';
|
||||
import 'package:front_end/src/codegen/tools.dart';
|
||||
import 'package:path/path.dart' as path;
|
||||
|
||||
import 'api.dart';
|
||||
import 'codegen_dart_protocol.dart';
|
||||
import 'from_html.dart';
|
||||
import 'implied_types.dart';
|
||||
|
||||
final GeneratedFile target =
|
||||
new GeneratedFile('lib/protocol/protocol_common.dart', (String pkgPath) {
|
||||
CodegenCommonVisitor visitor =
|
||||
new CodegenCommonVisitor(path.basename(pkgPath), readApi(pkgPath));
|
||||
return visitor.collectCode(visitor.visitApi);
|
||||
});
|
||||
|
||||
/**
|
||||
* A visitor that produces Dart code defining the common types associated with
|
||||
* the API.
|
||||
*/
|
||||
class CodegenCommonVisitor extends CodegenProtocolVisitor {
|
||||
/**
|
||||
* 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, Api api) : super(packageName, 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';");
|
||||
}
|
||||
|
||||
@override
|
||||
List<ImpliedType> getClassesToEmit() {
|
||||
List<ImpliedType> types = impliedTypes.values.where((ImpliedType type) {
|
||||
ApiNode node = type.apiNode;
|
||||
return node is TypeDefinition && node.isExternal;
|
||||
}).toList();
|
||||
types.sort((first, second) =>
|
||||
capitalize(first.camelName).compareTo(capitalize(second.camelName)));
|
||||
return types;
|
||||
}
|
||||
}
|
|
@ -572,27 +572,35 @@ class ApiReader {
|
|||
checkName(html, 'types');
|
||||
String context = 'types';
|
||||
checkAttributes(html, [], context);
|
||||
Map<String, TypeDefinition> types = <String, TypeDefinition>{};
|
||||
List<String> importUris = <String>[];
|
||||
Map<String, TypeDefinition> typeMap = <String, TypeDefinition>{};
|
||||
List<dom.Element> childElements = <dom.Element>[];
|
||||
recurse(html, context, {
|
||||
'include': (dom.Element child) {
|
||||
String importUri = child.attributes['import'];
|
||||
if (importUri != null) {
|
||||
importUris.add(importUri);
|
||||
}
|
||||
String relativePath = child.attributes['path'];
|
||||
String path = normalize(join(dirname(filePath), relativePath));
|
||||
ApiReader reader = new ApiReader(path);
|
||||
Api api = reader.readApi();
|
||||
for (TypeDefinition typeDefinition in api.types) {
|
||||
typeDefinition.isExternal = true;
|
||||
childElements.add(typeDefinition.html);
|
||||
types[typeDefinition.name] = typeDefinition;
|
||||
typeMap[typeDefinition.name] = typeDefinition;
|
||||
}
|
||||
},
|
||||
'type': (dom.Element child) {
|
||||
TypeDefinition typeDefinition = typeDefinitionFromHtml(child);
|
||||
types[typeDefinition.name] = typeDefinition;
|
||||
typeMap[typeDefinition.name] = typeDefinition;
|
||||
}
|
||||
});
|
||||
for (dom.Element element in childElements) {
|
||||
html.append(element);
|
||||
}
|
||||
return new Types(types, html);
|
||||
Types types = new Types(typeMap, html);
|
||||
types.importUris.addAll(importUris);
|
||||
return types;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ import 'package:path/path.dart';
|
|||
import 'codegen_dart_protocol.dart' as codegen_dart_protocol;
|
||||
import 'codegen_inttest_methods.dart' as codegen_inttest_methods;
|
||||
import 'codegen_matchers.dart' as codegen_matchers;
|
||||
import 'codegen_protocol_common.dart' as codegen_protocol_common;
|
||||
import 'codegen_protocol_constants.dart' as codegen_protocol_constants;
|
||||
import 'to_html.dart' as to_html;
|
||||
|
||||
|
@ -30,6 +31,7 @@ List<GeneratedContent> get allTargets {
|
|||
targets.add(codegen_dart_protocol.target);
|
||||
targets.add(codegen_inttest_methods.target);
|
||||
targets.add(codegen_matchers.target);
|
||||
targets.add(codegen_protocol_common.target);
|
||||
targets.add(codegen_protocol_constants.target);
|
||||
targets.add(to_html.target);
|
||||
return targets;
|
||||
|
|
|
@ -793,7 +793,8 @@
|
|||
This section contains descriptions of the data types referenced in the API’s
|
||||
of the various domains.
|
||||
</p>
|
||||
<include path="common_types_spec.html"></include>
|
||||
<include path="common_types_spec.html"
|
||||
import="package:analyzer_plugin/protocol/protocol_common.dart"></include>
|
||||
<type name="AnalysisErrorFixes">
|
||||
<p>
|
||||
A list of fixes associated with a specific error
|
||||
|
@ -1216,34 +1217,44 @@
|
|||
</p>
|
||||
<feedback>
|
||||
<field name="coveringExpressionOffsets" optional="true">
|
||||
<list><ref>int</ref></list>
|
||||
<list>
|
||||
<ref>int</ref>
|
||||
</list>
|
||||
<p>
|
||||
The offsets of the expressions that cover the specified selection,
|
||||
from the down most to the up most.
|
||||
</p>
|
||||
</field>
|
||||
<field name="coveringExpressionLengths" optional="true">
|
||||
<list><ref>int</ref></list>
|
||||
<list>
|
||||
<ref>int</ref>
|
||||
</list>
|
||||
<p>
|
||||
The lengths of the expressions that cover the specified selection,
|
||||
from the down most to the up most.
|
||||
</p>
|
||||
</field>
|
||||
<field name="names">
|
||||
<list><ref>String</ref></list>
|
||||
<list>
|
||||
<ref>String</ref>
|
||||
</list>
|
||||
<p>
|
||||
The proposed names for the local variable.
|
||||
</p>
|
||||
</field>
|
||||
<field name="offsets">
|
||||
<list><ref>int</ref></list>
|
||||
<list>
|
||||
<ref>int</ref>
|
||||
</list>
|
||||
<p>
|
||||
The offsets of the expressions that would be replaced by a reference
|
||||
to the variable.
|
||||
</p>
|
||||
</field>
|
||||
<field name="lengths">
|
||||
<list><ref>int</ref></list>
|
||||
<list>
|
||||
<ref>int</ref>
|
||||
</list>
|
||||
<p>
|
||||
The lengths of the expressions that would be replaced by a reference
|
||||
to the variable. The lengths correspond to the offsets. In other
|
||||
|
@ -1303,7 +1314,9 @@
|
|||
</p>
|
||||
</field>
|
||||
<field name="names">
|
||||
<list><ref>String</ref></list>
|
||||
<list>
|
||||
<ref>String</ref>
|
||||
</list>
|
||||
<p>
|
||||
The proposed names for the method.
|
||||
</p>
|
||||
|
@ -1315,20 +1328,26 @@
|
|||
</p>
|
||||
</field>
|
||||
<field name="parameters">
|
||||
<list><ref>RefactoringMethodParameter</ref></list>
|
||||
<list>
|
||||
<ref>RefactoringMethodParameter</ref>
|
||||
</list>
|
||||
<p>
|
||||
The proposed parameters for the method.
|
||||
</p>
|
||||
</field>
|
||||
<field name="offsets">
|
||||
<list><ref>int</ref></list>
|
||||
<list>
|
||||
<ref>int</ref>
|
||||
</list>
|
||||
<p>
|
||||
The offsets of the expressions or statements that would be replaced by
|
||||
an invocation of the method.
|
||||
</p>
|
||||
</field>
|
||||
<field name="lengths">
|
||||
<list><ref>int</ref></list>
|
||||
<list>
|
||||
<ref>int</ref>
|
||||
</list>
|
||||
<p>
|
||||
The lengths of the expressions or statements that would be replaced by
|
||||
an invocation of the method. The lengths correspond to the offsets. In
|
||||
|
@ -1359,7 +1378,9 @@
|
|||
</p>
|
||||
</field>
|
||||
<field name="parameters">
|
||||
<list><ref>RefactoringMethodParameter</ref></list>
|
||||
<list>
|
||||
<ref>RefactoringMethodParameter</ref>
|
||||
</list>
|
||||
<p>
|
||||
The parameters that should be defined for the method.
|
||||
</p>
|
||||
|
|
Loading…
Reference in a new issue