Index: pkg/analyzer/lib/src/generated/engine.dart |
diff --git a/pkg/analyzer/lib/src/generated/engine.dart b/pkg/analyzer/lib/src/generated/engine.dart |
index 9be1f2d74a84f381e3e4dd6fe0982854fd0ea449..2769209ec272d8a3041481fe41212ef650354126 100644 |
--- a/pkg/analyzer/lib/src/generated/engine.dart |
+++ b/pkg/analyzer/lib/src/generated/engine.dart |
@@ -5925,11 +5925,6 @@ class AnalysisEngine { |
InstrumentationService.NULL_SERVICE; |
/** |
- * The list of supported plugins for processing by clients. |
- */ |
- List<Plugin> _supportedPlugins; |
- |
- /** |
* The partition manager being used to manage the shared partitions. |
*/ |
final PartitionManager partitionManager = new PartitionManager(); |
@@ -5953,11 +5948,6 @@ class AnalysisEngine { |
bool limitInvalidationInTaskModel = false; |
/** |
- * The plugins that are defined outside the `analyzer` package. |
- */ |
- List<Plugin> _userDefinedPlugins = <Plugin>[]; |
- |
- /** |
* The task manager used to manage the tasks used to analyze code. |
*/ |
TaskManager _taskManager; |
@@ -5997,26 +5987,21 @@ class AnalysisEngine { |
} |
/** |
- * Return the list of supported plugins for processing by clients. |
+ * Return the list of plugins that clients are required to process, either by |
+ * creating an [ExtensionManager] or by using the method |
+ * [processRequiredPlugins]. |
*/ |
- List<Plugin> get supportedPlugins { |
- if (_supportedPlugins == null) { |
- _supportedPlugins = <Plugin>[ |
- enginePlugin, |
- commandLinePlugin, |
- optionsPlugin |
- ]; |
- _supportedPlugins.addAll(_userDefinedPlugins); |
- } |
- return _supportedPlugins; |
- } |
+ List<Plugin> get requiredPlugins => <Plugin>[enginePlugin]; |
/** |
* Return the task manager used to manage the tasks used to analyze code. |
*/ |
TaskManager get taskManager { |
if (_taskManager == null) { |
- new ExtensionManager().processPlugins(supportedPlugins); |
+ if (enginePlugin.taskExtensionPoint == null) { |
+ throw new IllegalStateException( |
+ 'The analysis engine plugin has not been registered'); |
+ } |
_taskManager = new TaskManager(); |
_taskManager.addTaskDescriptors(enginePlugin.taskDescriptors); |
// TODO(brianwilkerson) Create a way to associate different results with |
@@ -6027,18 +6012,6 @@ class AnalysisEngine { |
} |
/** |
- * Set plugins that are defined outside the `analyzer` package. |
- */ |
- void set userDefinedPlugins(List<Plugin> plugins) { |
- if (plugins == null) { |
- plugins = <Plugin>[]; |
- } |
- _userDefinedPlugins = plugins; |
- _supportedPlugins = null; |
- _taskManager = null; |
- } |
- |
- /** |
* Clear any caches holding on to analysis results so that a full re-analysis |
* will be performed the next time an analysis context is created. |
*/ |
@@ -6057,6 +6030,16 @@ class AnalysisEngine { |
} |
/** |
+ * A utility method that clients can use to process all of the required |
+ * plugins. This method can only be used by clients that do not need to |
+ * process any other plugins. |
+ */ |
+ void processRequiredPlugins() { |
+ ExtensionManager manager = new ExtensionManager(); |
+ manager.processPlugins(AnalysisEngine.instance.requiredPlugins); |
+ } |
+ |
+ /** |
* Return `true` if the given [fileName] is an analysis options file. |
*/ |
static bool isAnalysisOptionsFileName(String fileName, |