| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library analyzer.src.plugin.engine_plugin; | 5 library analyzer.src.plugin.engine_plugin; |
| 6 | 6 |
| 7 import 'package:analyzer/plugin/task.dart'; | 7 import 'package:analyzer/plugin/task.dart'; |
| 8 import 'package:analyzer/src/generated/engine.dart' | 8 import 'package:analyzer/src/generated/engine.dart' |
| 9 show InternalAnalysisContext; | 9 show InternalAnalysisContext; |
| 10 import 'package:analyzer/src/generated/error.dart' show AnalysisError; | 10 import 'package:analyzer/src/generated/error.dart' show AnalysisError; |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 | 92 |
| 93 /** | 93 /** |
| 94 * Initialize a newly created plugin. | 94 * Initialize a newly created plugin. |
| 95 */ | 95 */ |
| 96 EnginePlugin(); | 96 EnginePlugin(); |
| 97 | 97 |
| 98 /** | 98 /** |
| 99 * Return a list containing all of the contributed analysis error result | 99 * Return a list containing all of the contributed analysis error result |
| 100 * descriptors for Dart sources. | 100 * descriptors for Dart sources. |
| 101 */ | 101 */ |
| 102 List<TaskDescriptor> get dartErrorsForSource => | 102 @ExtensionPointId('DART_ERRORS_FOR_SOURCE_EXTENSION_POINT_ID') |
| 103 List<ResultDescriptor> get dartErrorsForSource => |
| 103 dartErrorsForSourceExtensionPoint.extensions; | 104 dartErrorsForSourceExtensionPoint.extensions; |
| 104 | 105 |
| 105 /** | 106 /** |
| 106 * Return a list containing all of the contributed analysis error result | 107 * Return a list containing all of the contributed analysis error result |
| 107 * descriptors for Dart library specific units. | 108 * descriptors for Dart library specific units. |
| 108 */ | 109 */ |
| 109 List<TaskDescriptor> get dartErrorsForUnit => | 110 @ExtensionPointId('DART_ERRORS_FOR_UNIT_EXTENSION_POINT_ID') |
| 111 List<ResultDescriptor> get dartErrorsForUnit => |
| 110 dartErrorsForUnitExtensionPoint.extensions; | 112 dartErrorsForUnitExtensionPoint.extensions; |
| 111 | 113 |
| 112 /** | 114 /** |
| 113 * Return a list containing all of the contributed analysis error result | 115 * Return a list containing all of the contributed analysis error result |
| 114 * descriptors for HTML sources. | 116 * descriptors for HTML sources. |
| 115 */ | 117 */ |
| 116 List<TaskDescriptor> get htmlErrors => htmlErrorsExtensionPoint.extensions; | 118 @ExtensionPointId('HTML_ERRORS_EXTENSION_POINT_ID') |
| 119 List<ResultDescriptor> get htmlErrors => htmlErrorsExtensionPoint.extensions; |
| 117 | 120 |
| 118 /** | 121 /** |
| 119 * Return a list containing all of the task descriptors that were contributed. | 122 * Return a list containing all of the task descriptors that were contributed. |
| 120 */ | 123 */ |
| 121 List<TaskDescriptor> get taskDescriptors => taskExtensionPoint.extensions; | 124 List<TaskDescriptor> get taskDescriptors => taskExtensionPoint.extensions; |
| 122 | 125 |
| 123 @override | 126 @override |
| 124 String get uniqueIdentifier => UNIQUE_IDENTIFIER; | 127 String get uniqueIdentifier => UNIQUE_IDENTIFIER; |
| 125 | 128 |
| 126 /** | 129 /** |
| (...skipping 24 matching lines...) Expand all Loading... |
| 151 @override | 154 @override |
| 152 void registerExtensions(RegisterExtension registerExtension) { | 155 void registerExtensions(RegisterExtension registerExtension) { |
| 153 _registerTaskExtensions(registerExtension); | 156 _registerTaskExtensions(registerExtension); |
| 154 _registerWorkManagerFactoryExtensions(registerExtension); | 157 _registerWorkManagerFactoryExtensions(registerExtension); |
| 155 _registerDartErrorsForSource(registerExtension); | 158 _registerDartErrorsForSource(registerExtension); |
| 156 _registerDartErrorsForUnit(registerExtension); | 159 _registerDartErrorsForUnit(registerExtension); |
| 157 _registerHtmlErrors(registerExtension); | 160 _registerHtmlErrors(registerExtension); |
| 158 } | 161 } |
| 159 | 162 |
| 160 void _registerDartErrorsForSource(RegisterExtension registerExtension) { | 163 void _registerDartErrorsForSource(RegisterExtension registerExtension) { |
| 161 String id = DART_ERRORS_FOR_SOURCE_EXTENSION_POINT_ID; | 164 registerExtension(DART_ERRORS_FOR_SOURCE_EXTENSION_POINT_ID, PARSE_ERRORS); |
| 162 registerExtension(id, PARSE_ERRORS); | 165 registerExtension(DART_ERRORS_FOR_SOURCE_EXTENSION_POINT_ID, SCAN_ERRORS); |
| 163 registerExtension(id, SCAN_ERRORS); | |
| 164 } | 166 } |
| 165 | 167 |
| 166 void _registerDartErrorsForUnit(RegisterExtension registerExtension) { | 168 void _registerDartErrorsForUnit(RegisterExtension registerExtension) { |
| 167 String id = DART_ERRORS_FOR_UNIT_EXTENSION_POINT_ID; | 169 registerExtension( |
| 168 registerExtension(id, LIBRARY_UNIT_ERRORS); | 170 DART_ERRORS_FOR_UNIT_EXTENSION_POINT_ID, LIBRARY_UNIT_ERRORS); |
| 169 } | 171 } |
| 170 | 172 |
| 171 void _registerHtmlErrors(RegisterExtension registerExtension) { | 173 void _registerHtmlErrors(RegisterExtension registerExtension) { |
| 172 String id = HTML_ERRORS_EXTENSION_POINT_ID; | 174 registerExtension(HTML_ERRORS_EXTENSION_POINT_ID, HTML_DOCUMENT_ERRORS); |
| 173 registerExtension(id, HTML_DOCUMENT_ERRORS); | |
| 174 } | 175 } |
| 175 | 176 |
| 176 void _registerTaskExtensions(RegisterExtension registerExtension) { | 177 void _registerTaskExtensions(RegisterExtension registerExtension) { |
| 177 String taskId = TASK_EXTENSION_POINT_ID; | 178 String taskId = TASK_EXTENSION_POINT_ID; |
| 178 // | 179 // |
| 179 // Register general tasks. | 180 // Register general tasks. |
| 180 // | 181 // |
| 181 registerExtension(taskId, GetContentTask.DESCRIPTOR); | 182 registerExtension(taskId, GetContentTask.DESCRIPTOR); |
| 182 // | 183 // |
| 183 // Register Dart tasks. | 184 // Register Dart tasks. |
| (...skipping 26 matching lines...) Expand all Loading... |
| 210 registerExtension(taskId, LibraryUnitErrorsTask.DESCRIPTOR); | 211 registerExtension(taskId, LibraryUnitErrorsTask.DESCRIPTOR); |
| 211 registerExtension(taskId, ParseDartTask.DESCRIPTOR); | 212 registerExtension(taskId, ParseDartTask.DESCRIPTOR); |
| 212 registerExtension(taskId, PartiallyResolveUnitReferencesTask.DESCRIPTOR); | 213 registerExtension(taskId, PartiallyResolveUnitReferencesTask.DESCRIPTOR); |
| 213 registerExtension(taskId, ResolveInstanceFieldsInUnitTask.DESCRIPTOR); | 214 registerExtension(taskId, ResolveInstanceFieldsInUnitTask.DESCRIPTOR); |
| 214 registerExtension(taskId, ResolveLibraryReferencesTask.DESCRIPTOR); | 215 registerExtension(taskId, ResolveLibraryReferencesTask.DESCRIPTOR); |
| 215 registerExtension(taskId, ResolveLibraryTypeNamesTask.DESCRIPTOR); | 216 registerExtension(taskId, ResolveLibraryTypeNamesTask.DESCRIPTOR); |
| 216 registerExtension(taskId, ResolveUnitTask.DESCRIPTOR); | 217 registerExtension(taskId, ResolveUnitTask.DESCRIPTOR); |
| 217 registerExtension(taskId, ResolveUnitTypeNamesTask.DESCRIPTOR); | 218 registerExtension(taskId, ResolveUnitTypeNamesTask.DESCRIPTOR); |
| 218 registerExtension(taskId, ResolveVariableReferencesTask.DESCRIPTOR); | 219 registerExtension(taskId, ResolveVariableReferencesTask.DESCRIPTOR); |
| 219 registerExtension(taskId, ScanDartTask.DESCRIPTOR); | 220 registerExtension(taskId, ScanDartTask.DESCRIPTOR); |
| 221 registerExtension(taskId, StrongModeVerifyUnitTask.DESCRIPTOR); |
| 220 registerExtension(taskId, VerifyUnitTask.DESCRIPTOR); | 222 registerExtension(taskId, VerifyUnitTask.DESCRIPTOR); |
| 221 // | 223 // |
| 222 // Register HTML tasks. | 224 // Register HTML tasks. |
| 223 // | 225 // |
| 224 registerExtension(taskId, DartScriptsTask.DESCRIPTOR); | 226 registerExtension(taskId, DartScriptsTask.DESCRIPTOR); |
| 225 registerExtension(taskId, HtmlErrorsTask.DESCRIPTOR); | 227 registerExtension(taskId, HtmlErrorsTask.DESCRIPTOR); |
| 226 registerExtension(taskId, ParseHtmlTask.DESCRIPTOR); | 228 registerExtension(taskId, ParseHtmlTask.DESCRIPTOR); |
| 227 } | 229 } |
| 228 | 230 |
| 229 void _registerWorkManagerFactoryExtensions( | 231 void _registerWorkManagerFactoryExtensions( |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 263 * a [WorkManagerFactory]. | 265 * a [WorkManagerFactory]. |
| 264 */ | 266 */ |
| 265 void _validateWorkManagerFactoryExtension(Object extension) { | 267 void _validateWorkManagerFactoryExtension(Object extension) { |
| 266 if (extension is! WorkManagerFactory) { | 268 if (extension is! WorkManagerFactory) { |
| 267 String id = taskExtensionPoint.uniqueIdentifier; | 269 String id = taskExtensionPoint.uniqueIdentifier; |
| 268 throw new ExtensionError( | 270 throw new ExtensionError( |
| 269 'Extensions to $id must be a WorkManagerFactory'); | 271 'Extensions to $id must be a WorkManagerFactory'); |
| 270 } | 272 } |
| 271 } | 273 } |
| 272 } | 274 } |
| 275 |
| 276 /** |
| 277 * Annotation describing the relationship between a getter in [EnginePlugin] |
| 278 * and the associated identifier (in '../../plugin/task.dart') which can be |
| 279 * passed to the extension manager to populate it. |
| 280 * |
| 281 * This annotation is not used at runtime; it is used to aid in static analysis |
| 282 * of the task model during development. |
| 283 */ |
| 284 class ExtensionPointId { |
| 285 final String extensionPointId; |
| 286 |
| 287 const ExtensionPointId(this.extensionPointId); |
| 288 } |
| OLD | NEW |