Chromium Code Reviews| 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..c6309dac439f7f85796d4fea3524e8bc4cb704eb 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; |
|
danrubel
2015/11/24 20:40:47
Yes, this is formatted. If you have suggestions fo
|
| + |
| + /** |
| * 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 an DartCompletionContributor'); |
| + } |
| + } |
| + |
| + /** |
| + * Validate the given extension by throwing an [ExtensionError] if it is not a |
| * valid domain. |
| */ |
| void _validateDomainExtension(Object extension) { |