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

Unified Diff: pkg/analysis_server/lib/src/plugin/server_plugin.dart

Issue 1470373002: create new Dart specific completion contributor extension point (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: merge Created 5 years, 1 month 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/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) {

Powered by Google App Engine
This is Rietveld 408576698