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 |