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 91ecb32d2b5ce8ebaa2433d92b06ce3e495e5745..8284b5d74688471a60ba958b9ec888342c0e617c 100644 |
--- a/pkg/analysis_server/lib/src/plugin/server_plugin.dart |
+++ b/pkg/analysis_server/lib/src/plugin/server_plugin.dart |
@@ -109,48 +109,49 @@ class ServerPlugin implements Plugin { |
* The extension point that allows plugins to register file patterns that will |
* cause files to be analyzed. |
*/ |
- ExtensionPoint analyzedFilePatternsExtensionPoint; |
+ ExtensionPoint<List<String>> analyzedFilePatternsExtensionPoint; |
/** |
* The extension point that allows plugins to register assist contributors. |
*/ |
- ExtensionPoint assistContributorExtensionPoint; |
+ ExtensionPoint<AssistContributor> assistContributorExtensionPoint; |
/** |
* The extension point that allows plugins to register completion |
* contributors. |
*/ |
- ExtensionPoint completionContributorExtensionPoint; |
+ ExtensionPoint<CompletionContributorFactory> |
+ completionContributorExtensionPoint; |
/** |
* The extension point that allows plugins to register domains with the |
* server. |
*/ |
- ExtensionPoint domainExtensionPoint; |
+ ExtensionPoint<RequestHandlerFactory> domainExtensionPoint; |
/** |
* The extension point that allows plugins to register fix contributors with |
* the server. |
*/ |
- ExtensionPoint fixContributorExtensionPoint; |
+ ExtensionPoint<FixContributor> fixContributorExtensionPoint; |
/** |
* The extension point that allows plugins to register navigation |
* contributors. |
*/ |
- ExtensionPoint navigationContributorExtensionPoint; |
+ ExtensionPoint<NavigationContributor> navigationContributorExtensionPoint; |
/** |
* The extension point that allows plugins to register occurrences |
* contributors. |
*/ |
- ExtensionPoint occurrencesContributorExtensionPoint; |
+ ExtensionPoint<OccurrencesContributor> occurrencesContributorExtensionPoint; |
/** |
* The extension point that allows plugins to get access to the `analysis` |
* domain. |
*/ |
- ExtensionPoint setAnalysisDomainExtensionPoint; |
+ ExtensionPoint<SetAnalysisDomain> setAnalysisDomainExtensionPoint; |
/** |
* Initialize a newly created plugin. |
@@ -230,28 +231,33 @@ class ServerPlugin implements Plugin { |
@override |
void registerExtensionPoints(RegisterExtensionPoint registerExtensionPoint) { |
- setAnalysisDomainExtensionPoint = registerExtensionPoint( |
- SET_ANALISYS_DOMAIN_EXTENSION_POINT, |
- _validateSetAnalysisDomainFunction); |
- analyzedFilePatternsExtensionPoint = registerExtensionPoint( |
- ANALYZED_FILE_PATTERNS_EXTENSION_POINT, |
- _validateAnalyzedFilePatternsExtension); |
- assistContributorExtensionPoint = registerExtensionPoint( |
- ASSIST_CONTRIBUTOR_EXTENSION_POINT, |
- _validateAssistContributorExtension); |
- completionContributorExtensionPoint = registerExtensionPoint( |
- COMPLETION_CONTRIBUTOR_EXTENSION_POINT, |
- _validateCompletionContributorExtension); |
- domainExtensionPoint = registerExtensionPoint( |
- DOMAIN_EXTENSION_POINT, _validateDomainExtension); |
- fixContributorExtensionPoint = registerExtensionPoint( |
- FIX_CONTRIBUTOR_EXTENSION_POINT, _validateFixContributorExtension); |
- navigationContributorExtensionPoint = registerExtensionPoint( |
- NAVIGATION_CONTRIBUTOR_EXTENSION_POINT, |
- _validateNavigationContributorExtension); |
- occurrencesContributorExtensionPoint = registerExtensionPoint( |
- OCCURRENCES_CONTRIBUTOR_EXTENSION_POINT, |
- _validateOccurrencesContributorExtension); |
+ analyzedFilePatternsExtensionPoint = new ExtensionPoint<List<String>>( |
+ this, ANALYZED_FILE_PATTERNS_EXTENSION_POINT, null); |
+ registerExtensionPoint(analyzedFilePatternsExtensionPoint); |
+ assistContributorExtensionPoint = new ExtensionPoint<AssistContributor>( |
+ this, ASSIST_CONTRIBUTOR_EXTENSION_POINT, null); |
+ registerExtensionPoint(assistContributorExtensionPoint); |
+ completionContributorExtensionPoint = |
+ new ExtensionPoint<CompletionContributorFactory>( |
+ this, COMPLETION_CONTRIBUTOR_EXTENSION_POINT, null); |
+ registerExtensionPoint(completionContributorExtensionPoint); |
+ domainExtensionPoint = new ExtensionPoint<RequestHandlerFactory>( |
+ this, DOMAIN_EXTENSION_POINT, null); |
+ registerExtensionPoint(domainExtensionPoint); |
+ fixContributorExtensionPoint = new ExtensionPoint<FixContributor>( |
+ this, FIX_CONTRIBUTOR_EXTENSION_POINT, null); |
+ registerExtensionPoint(fixContributorExtensionPoint); |
+ navigationContributorExtensionPoint = |
+ new ExtensionPoint<NavigationContributor>( |
+ this, NAVIGATION_CONTRIBUTOR_EXTENSION_POINT, null); |
+ registerExtensionPoint(navigationContributorExtensionPoint); |
+ occurrencesContributorExtensionPoint = |
+ new ExtensionPoint<OccurrencesContributor>( |
+ this, OCCURRENCES_CONTRIBUTOR_EXTENSION_POINT, null); |
+ registerExtensionPoint(occurrencesContributorExtensionPoint); |
+ setAnalysisDomainExtensionPoint = new ExtensionPoint<SetAnalysisDomain>( |
+ this, SET_ANALISYS_DOMAIN_EXTENSION_POINT, null); |
+ registerExtensionPoint(setAnalysisDomainExtensionPoint); |
} |
@override |
@@ -307,111 +313,4 @@ class ServerPlugin implements Plugin { |
registerExtension( |
FIX_CONTRIBUTOR_EXTENSION_POINT_ID, new DefaultFixContributor()); |
} |
- |
- /** |
- * Return `true` if the list being used as an [extension] contains any |
- * elements that are not strings. |
- */ |
- bool _containsNonString(List extension) { |
- for (Object element in extension) { |
- if (element is! String) { |
- return true; |
- } |
- } |
- return false; |
- } |
- |
- /** |
- * Validate the given extension by throwing an [ExtensionError] if it is not a |
- * valid list of analyzed file patterns. |
- */ |
- void _validateAnalyzedFilePatternsExtension(Object extension) { |
- if (extension is! List || _containsNonString(extension)) { |
- String id = analyzedFilePatternsExtensionPoint.uniqueIdentifier; |
- throw new ExtensionError('Extensions to $id must be a List of Strings'); |
- } |
- } |
- |
- /** |
- * Validate the given extension by throwing an [ExtensionError] if it is not a |
- * valid assist contributor. |
- */ |
- void _validateAssistContributorExtension(Object extension) { |
- if (extension is! AssistContributor) { |
- String id = assistContributorExtensionPoint.uniqueIdentifier; |
- throw new ExtensionError( |
- 'Extensions to $id must be an AssistContributor'); |
- } |
- } |
- |
- /** |
- * Validate the given extension by throwing an [ExtensionError] if it is not a |
- * valid completion contributor. |
- */ |
- void _validateCompletionContributorExtension(Object extension) { |
- if (extension is! CompletionContributorFactory) { |
- String id = completionContributorExtensionPoint.uniqueIdentifier; |
- throw new ExtensionError( |
- 'Extensions to $id must be an CompletionContributorFactory'); |
- } |
- } |
- |
- /** |
- * Validate the given extension by throwing an [ExtensionError] if it is not a |
- * valid domain. |
- */ |
- void _validateDomainExtension(Object extension) { |
- if (extension is! RequestHandlerFactory) { |
- String id = domainExtensionPoint.uniqueIdentifier; |
- throw new ExtensionError( |
- 'Extensions to $id must be a RequestHandlerFactory'); |
- } |
- } |
- |
- /** |
- * Validate the given extension by throwing an [ExtensionError] if it is not a |
- * valid fix contributor. |
- */ |
- void _validateFixContributorExtension(Object extension) { |
- if (extension is! FixContributor) { |
- String id = fixContributorExtensionPoint.uniqueIdentifier; |
- throw new ExtensionError('Extensions to $id must be a FixContributor'); |
- } |
- } |
- |
- /** |
- * Validate the given extension by throwing an [ExtensionError] if it is not a |
- * valid navigation contributor. |
- */ |
- void _validateNavigationContributorExtension(Object extension) { |
- if (extension is! NavigationContributor) { |
- String id = navigationContributorExtensionPoint.uniqueIdentifier; |
- throw new ExtensionError( |
- 'Extensions to $id must be an NavigationContributor'); |
- } |
- } |
- |
- /** |
- * Validate the given extension by throwing an [ExtensionError] if it is not a |
- * valid occurrences contributor. |
- */ |
- void _validateOccurrencesContributorExtension(Object extension) { |
- if (extension is! OccurrencesContributor) { |
- String id = occurrencesContributorExtensionPoint.uniqueIdentifier; |
- throw new ExtensionError( |
- 'Extensions to $id must be an OccurrencesContributor'); |
- } |
- } |
- |
- /** |
- * Validate the given extension by throwing an [ExtensionError] if it is not a |
- * valid analysis domain receiver. |
- */ |
- void _validateSetAnalysisDomainFunction(Object extension) { |
- if (extension is! SetAnalysisDomain) { |
- String id = setAnalysisDomainExtensionPoint.uniqueIdentifier; |
- throw new ExtensionError( |
- 'Extensions to $id must be a SetAnalysisDomain function'); |
- } |
- } |
} |