| Index: pkg/analysis_server/lib/src/plugin/server_plugin.dart
|
| diff --git a/pkg/analysis_server/lib/src/plugin/server_plugin.dart b/pkg/analysis_server/lib/src/plugin/server_plugin.dart
|
| index c72ef9aa8ad438b00c9fbff5b02bb3caab5351f6..85cc38864c4ab5c8a6572f63aa4f03787b8a14ab 100644
|
| --- a/pkg/analysis_server/lib/src/plugin/server_plugin.dart
|
| +++ b/pkg/analysis_server/lib/src/plugin/server_plugin.dart
|
| @@ -25,9 +25,12 @@ import 'package:analysis_server/src/domains/analysis/navigation_dart.dart';
|
| import 'package:analysis_server/src/domains/analysis/occurrences_dart.dart';
|
| import 'package:analysis_server/src/edit/edit_domain.dart';
|
| import 'package:analysis_server/src/provisional/completion/completion_core.dart';
|
| +import 'package:analysis_server/src/provisional/completion/dart/completion.dart';
|
| +import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart';
|
| import 'package:analysis_server/src/provisional/index/index.dart';
|
| import 'package:analysis_server/src/provisional/index/index_core.dart';
|
| import 'package:analysis_server/src/search/search_domain.dart';
|
| +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart';
|
| import 'package:analysis_server/src/services/correction/assist_internal.dart';
|
| import 'package:analysis_server/src/services/correction/fix_internal.dart';
|
| import 'package:analysis_server/src/services/index/index_contributor.dart';
|
| @@ -67,6 +70,13 @@ class ServerPlugin implements Plugin {
|
|
|
| /**
|
| * The simple identifier of the extension point that allows plugins to
|
| + * register Dart specific completion contributor factories.
|
| + */
|
| + static const String DART_COMPLETION_CONTRIBUTOR_EXTENSION_POINT =
|
| + 'dartCompletionContributor';
|
| +
|
| + /**
|
| + * The simple identifier of the extension point that allows plugins to
|
| * register domains.
|
| */
|
| static const String DOMAIN_EXTENSION_POINT = 'domain';
|
| @@ -126,6 +136,12 @@ class ServerPlugin implements Plugin {
|
| ExtensionPoint completionContributorExtensionPoint;
|
|
|
| /**
|
| + * The extension point that allows plugins to register Dart specific
|
| + * completion contributor factories.
|
| + */
|
| + ExtensionPoint dartCompletionContributorExtensionPoint;
|
| +
|
| + /**
|
| * The extension point that allows plugins to register domains with the
|
| * server.
|
| */
|
| @@ -193,6 +209,14 @@ class ServerPlugin implements Plugin {
|
| completionContributorExtensionPoint.extensions;
|
|
|
| /**
|
| + * Return a list containing all of the Dart specific completion contributor
|
| + * factories that were contributed.
|
| + */
|
| + List<
|
| + DartCompletionContributorFactory> get dartCompletionContributorFactories =>
|
| + dartCompletionContributorExtensionPoint.extensions;
|
| +
|
| + /**
|
| * Return a list containing all of the fix contributors that were contributed.
|
| */
|
| List<FixContributor> get fixContributors =>
|
| @@ -256,6 +280,9 @@ class ServerPlugin implements Plugin {
|
| completionContributorExtensionPoint = registerExtensionPoint(
|
| COMPLETION_CONTRIBUTOR_EXTENSION_POINT,
|
| _validateCompletionContributorExtension);
|
| + dartCompletionContributorExtensionPoint = registerExtensionPoint(
|
| + DART_COMPLETION_CONTRIBUTOR_EXTENSION_POINT,
|
| + _validateDartCompletionContributorExtension);
|
| domainExtensionPoint = registerExtensionPoint(
|
| DOMAIN_EXTENSION_POINT, _validateDomainExtension);
|
| fixContributorExtensionPoint = registerExtensionPoint(
|
| @@ -291,7 +318,9 @@ class ServerPlugin implements Plugin {
|
| // Register completion contributors.
|
| //
|
| // TODO(brianwilkerson) Register the completion contributors.
|
| -// registerExtension(COMPLETION_CONTRIBUTOR_EXTENSION_POINT_ID, ???);
|
| + //registerExtension(COMPLETION_CONTRIBUTOR_EXTENSION_POINT_ID, ???);
|
| + registerExtension(DART_COMPLETION_CONTRIBUTOR_EXTENSION_POINT_ID,
|
| + defaultDartCompletionContributorFactory);
|
| //
|
| // Register analysis contributors.
|
| //
|
| @@ -379,6 +408,18 @@ class ServerPlugin implements Plugin {
|
|
|
| /**
|
| * Validate the given extension by throwing an [ExtensionError] if it is not a
|
| + * valid Dart specific completion contributor.
|
| + */
|
| + void _validateDartCompletionContributorExtension(Object extension) {
|
| + if (extension is! DartCompletionContributorFactory) {
|
| + String id = dartCompletionContributorExtensionPoint.uniqueIdentifier;
|
| + throw new ExtensionError(
|
| + 'Extensions to $id must be a DartCompletionContributorFactory');
|
| + }
|
| + }
|
| +
|
| + /**
|
| + * Validate the given extension by throwing an [ExtensionError] if it is not a
|
| * valid domain.
|
| */
|
| void _validateDomainExtension(Object extension) {
|
|
|