| 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 analysis_server.src.plugin.server_plugin; | 5 library analysis_server.src.plugin.server_plugin; |
| 6 | 6 |
| 7 import 'package:analysis_server/analysis/analysis_domain.dart'; | 7 import 'package:analysis_server/analysis/analysis_domain.dart'; |
| 8 import 'package:analysis_server/analysis/index/index_core.dart'; | 8 import 'package:analysis_server/analysis/index/index_core.dart'; |
| 9 import 'package:analysis_server/analysis/navigation/navigation_core.dart'; | 9 import 'package:analysis_server/analysis/navigation_core.dart'; |
| 10 import 'package:analysis_server/analysis/occurrences_core.dart'; |
| 10 import 'package:analysis_server/completion/completion_core.dart'; | 11 import 'package:analysis_server/completion/completion_core.dart'; |
| 11 import 'package:analysis_server/edit/assist/assist_core.dart'; | 12 import 'package:analysis_server/edit/assist/assist_core.dart'; |
| 12 import 'package:analysis_server/edit/fix/fix_core.dart'; | 13 import 'package:analysis_server/edit/fix/fix_core.dart'; |
| 13 import 'package:analysis_server/plugin/analyzed_files.dart'; | 14 import 'package:analysis_server/plugin/analyzed_files.dart'; |
| 14 import 'package:analysis_server/plugin/assist.dart'; | 15 import 'package:analysis_server/plugin/assist.dart'; |
| 15 import 'package:analysis_server/plugin/fix.dart'; | 16 import 'package:analysis_server/plugin/fix.dart'; |
| 16 import 'package:analysis_server/plugin/navigation.dart'; | 17 import 'package:analysis_server/plugin/navigation.dart'; |
| 18 import 'package:analysis_server/plugin/occurrences.dart'; |
| 17 import 'package:analysis_server/src/analysis_server.dart'; | 19 import 'package:analysis_server/src/analysis_server.dart'; |
| 18 import 'package:analysis_server/src/domain_analysis.dart'; | 20 import 'package:analysis_server/src/domain_analysis.dart'; |
| 19 import 'package:analysis_server/src/domain_completion.dart'; | 21 import 'package:analysis_server/src/domain_completion.dart'; |
| 20 import 'package:analysis_server/src/domain_execution.dart'; | 22 import 'package:analysis_server/src/domain_execution.dart'; |
| 21 import 'package:analysis_server/src/domain_server.dart'; | 23 import 'package:analysis_server/src/domain_server.dart'; |
| 22 import 'package:analysis_server/src/domains/analysis/navigation_dart.dart'; | 24 import 'package:analysis_server/src/domains/analysis/navigation_dart.dart'; |
| 25 import 'package:analysis_server/src/domains/analysis/occurrences_dart.dart'; |
| 23 import 'package:analysis_server/src/edit/edit_domain.dart'; | 26 import 'package:analysis_server/src/edit/edit_domain.dart'; |
| 24 import 'package:analysis_server/src/protocol.dart'; | 27 import 'package:analysis_server/src/protocol.dart'; |
| 25 import 'package:analysis_server/src/search/search_domain.dart'; | 28 import 'package:analysis_server/src/search/search_domain.dart'; |
| 26 import 'package:analysis_server/src/services/correction/assist_internal.dart'; | 29 import 'package:analysis_server/src/services/correction/assist_internal.dart'; |
| 27 import 'package:analysis_server/src/services/correction/fix_internal.dart'; | 30 import 'package:analysis_server/src/services/correction/fix_internal.dart'; |
| 28 import 'package:analyzer/file_system/file_system.dart'; | 31 import 'package:analyzer/file_system/file_system.dart'; |
| 29 import 'package:analyzer/src/generated/engine.dart'; | 32 import 'package:analyzer/src/generated/engine.dart'; |
| 30 import 'package:plugin/plugin.dart'; | 33 import 'package:plugin/plugin.dart'; |
| 31 | 34 |
| 32 /** | 35 /** |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 | 82 |
| 80 /** | 83 /** |
| 81 * The simple identifier of the extension point that allows plugins to | 84 * The simple identifier of the extension point that allows plugins to |
| 82 * register navigation contributors. | 85 * register navigation contributors. |
| 83 */ | 86 */ |
| 84 static const String NAVIGATION_CONTRIBUTOR_EXTENSION_POINT = | 87 static const String NAVIGATION_CONTRIBUTOR_EXTENSION_POINT = |
| 85 'navigationContributor'; | 88 'navigationContributor'; |
| 86 | 89 |
| 87 /** | 90 /** |
| 88 * The simple identifier of the extension point that allows plugins to | 91 * The simple identifier of the extension point that allows plugins to |
| 92 * register element occurrences. |
| 93 */ |
| 94 static const String OCCURRENCES_CONTRIBUTOR_EXTENSION_POINT = |
| 95 'occurrencesContributor'; |
| 96 |
| 97 /** |
| 98 * The simple identifier of the extension point that allows plugins to |
| 89 * register analysis result listeners. | 99 * register analysis result listeners. |
| 90 */ | 100 */ |
| 91 static const String SET_ANALISYS_DOMAIN_EXTENSION_POINT = 'setAnalysisDomain'; | 101 static const String SET_ANALISYS_DOMAIN_EXTENSION_POINT = 'setAnalysisDomain'; |
| 92 | 102 |
| 93 /** | 103 /** |
| 94 * The unique identifier of this plugin. | 104 * The unique identifier of this plugin. |
| 95 */ | 105 */ |
| 96 static const String UNIQUE_IDENTIFIER = 'analysis_server.core'; | 106 static const String UNIQUE_IDENTIFIER = 'analysis_server.core'; |
| 97 | 107 |
| 98 /** | 108 /** |
| (...skipping 24 matching lines...) Expand all Loading... |
| 123 * the server. | 133 * the server. |
| 124 */ | 134 */ |
| 125 ExtensionPoint fixContributorExtensionPoint; | 135 ExtensionPoint fixContributorExtensionPoint; |
| 126 | 136 |
| 127 /** | 137 /** |
| 128 * The extension point that allows plugins to register index contributors. | 138 * The extension point that allows plugins to register index contributors. |
| 129 */ | 139 */ |
| 130 ExtensionPoint indexContributorExtensionPoint; | 140 ExtensionPoint indexContributorExtensionPoint; |
| 131 | 141 |
| 132 /** | 142 /** |
| 133 * The extension point that allows plugins to register navigation contributors
. | 143 * The extension point that allows plugins to register navigation |
| 144 * contributors. |
| 134 */ | 145 */ |
| 135 ExtensionPoint navigationContributorExtensionPoint; | 146 ExtensionPoint navigationContributorExtensionPoint; |
| 136 | 147 |
| 137 /** | 148 /** |
| 149 * The extension point that allows plugins to register occurrences |
| 150 * contributors. |
| 151 */ |
| 152 ExtensionPoint occurrencesContributorExtensionPoint; |
| 153 |
| 154 /** |
| 138 * The extension point that allows plugins to get access to the `analysis` | 155 * The extension point that allows plugins to get access to the `analysis` |
| 139 * domain. | 156 * domain. |
| 140 */ | 157 */ |
| 141 ExtensionPoint setAnalysisDomainExtensionPoint; | 158 ExtensionPoint setAnalysisDomainExtensionPoint; |
| 142 | 159 |
| 143 /** | 160 /** |
| 144 * Initialize a newly created plugin. | 161 * Initialize a newly created plugin. |
| 145 */ | 162 */ |
| 146 ServerPlugin(); | 163 ServerPlugin(); |
| 147 | 164 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 180 indexContributorExtensionPoint.extensions; | 197 indexContributorExtensionPoint.extensions; |
| 181 | 198 |
| 182 /** | 199 /** |
| 183 * Return a list containing all of the navigation contributors that were | 200 * Return a list containing all of the navigation contributors that were |
| 184 * contributed. | 201 * contributed. |
| 185 */ | 202 */ |
| 186 List<NavigationContributor> get navigationContributors => | 203 List<NavigationContributor> get navigationContributors => |
| 187 navigationContributorExtensionPoint.extensions; | 204 navigationContributorExtensionPoint.extensions; |
| 188 | 205 |
| 189 /** | 206 /** |
| 207 * Return a list containing all of the occurrences contributors that were |
| 208 * contributed. |
| 209 */ |
| 210 List<OccurrencesContributor> get occurrencesContributors => |
| 211 occurrencesContributorExtensionPoint.extensions; |
| 212 |
| 213 /** |
| 190 * Return a list containing all of the receivers of the `analysis` domain | 214 * Return a list containing all of the receivers of the `analysis` domain |
| 191 * instance. | 215 * instance. |
| 192 */ | 216 */ |
| 193 List<SetAnalysisDomain> get setAnalysisDomainFunctions => | 217 List<SetAnalysisDomain> get setAnalysisDomainFunctions => |
| 194 setAnalysisDomainExtensionPoint.extensions; | 218 setAnalysisDomainExtensionPoint.extensions; |
| 195 | 219 |
| 196 @override | 220 @override |
| 197 String get uniqueIdentifier => UNIQUE_IDENTIFIER; | 221 String get uniqueIdentifier => UNIQUE_IDENTIFIER; |
| 198 | 222 |
| 199 /** | 223 /** |
| (...skipping 24 matching lines...) Expand all Loading... |
| 224 _validateCompletionContributorExtension); | 248 _validateCompletionContributorExtension); |
| 225 domainExtensionPoint = registerExtensionPoint( | 249 domainExtensionPoint = registerExtensionPoint( |
| 226 DOMAIN_EXTENSION_POINT, _validateDomainExtension); | 250 DOMAIN_EXTENSION_POINT, _validateDomainExtension); |
| 227 fixContributorExtensionPoint = registerExtensionPoint( | 251 fixContributorExtensionPoint = registerExtensionPoint( |
| 228 FIX_CONTRIBUTOR_EXTENSION_POINT, _validateFixContributorExtension); | 252 FIX_CONTRIBUTOR_EXTENSION_POINT, _validateFixContributorExtension); |
| 229 indexContributorExtensionPoint = registerExtensionPoint( | 253 indexContributorExtensionPoint = registerExtensionPoint( |
| 230 INDEX_CONTRIBUTOR_EXTENSION_POINT, _validateIndexContributorExtension); | 254 INDEX_CONTRIBUTOR_EXTENSION_POINT, _validateIndexContributorExtension); |
| 231 navigationContributorExtensionPoint = registerExtensionPoint( | 255 navigationContributorExtensionPoint = registerExtensionPoint( |
| 232 NAVIGATION_CONTRIBUTOR_EXTENSION_POINT, | 256 NAVIGATION_CONTRIBUTOR_EXTENSION_POINT, |
| 233 _validateNavigationContributorExtension); | 257 _validateNavigationContributorExtension); |
| 258 occurrencesContributorExtensionPoint = registerExtensionPoint( |
| 259 OCCURRENCES_CONTRIBUTOR_EXTENSION_POINT, |
| 260 _validateOccurrencesContributorExtension); |
| 234 } | 261 } |
| 235 | 262 |
| 236 @override | 263 @override |
| 237 void registerExtensions(RegisterExtension registerExtension) { | 264 void registerExtensions(RegisterExtension registerExtension) { |
| 238 // | 265 // |
| 239 // Register analyze file functions. | 266 // Register analyze file functions. |
| 240 // | 267 // |
| 241 registerExtension( | 268 registerExtension( |
| 242 ANALYZE_FILE_EXTENSION_POINT_ID, | 269 ANALYZE_FILE_EXTENSION_POINT_ID, |
| 243 (File file) => AnalysisEngine.isDartFileName(file.path) || | 270 (File file) => AnalysisEngine.isDartFileName(file.path) || |
| 244 AnalysisEngine.isHtmlFileName(file.path)); | 271 AnalysisEngine.isHtmlFileName(file.path)); |
| 245 // | 272 // |
| 246 // Register assist contributors. | 273 // Register assist contributors. |
| 247 // | 274 // |
| 248 registerExtension( | 275 registerExtension( |
| 249 ASSIST_CONTRIBUTOR_EXTENSION_POINT_ID, new DefaultAssistContributor()); | 276 ASSIST_CONTRIBUTOR_EXTENSION_POINT_ID, new DefaultAssistContributor()); |
| 250 // | 277 // |
| 251 // Register completion contributors. | 278 // Register completion contributors. |
| 252 // | 279 // |
| 253 // TODO(brianwilkerson) Register the completion contributors. | 280 // TODO(brianwilkerson) Register the completion contributors. |
| 254 // registerExtension(COMPLETION_CONTRIBUTOR_EXTENSION_POINT_ID, ???); | 281 // registerExtension(COMPLETION_CONTRIBUTOR_EXTENSION_POINT_ID, ???); |
| 255 // | 282 // |
| 256 // Register navigation contributors. | 283 // Register analysis contributors. |
| 257 // | 284 // |
| 258 registerExtension(NAVIGATION_CONTRIBUTOR_EXTENSION_POINT_ID, | 285 registerExtension(NAVIGATION_CONTRIBUTOR_EXTENSION_POINT_ID, |
| 259 new DartNavigationComputer()); | 286 new DartNavigationComputer()); |
| 287 registerExtension(OCCURRENCES_CONTRIBUTOR_EXTENSION_POINT_ID, |
| 288 new DartOccurrencesComputer()); |
| 260 // | 289 // |
| 261 // Register domains. | 290 // Register domains. |
| 262 // | 291 // |
| 263 String domainId = Plugin.join(UNIQUE_IDENTIFIER, DOMAIN_EXTENSION_POINT); | 292 String domainId = Plugin.join(UNIQUE_IDENTIFIER, DOMAIN_EXTENSION_POINT); |
| 264 registerExtension( | 293 registerExtension( |
| 265 domainId, (AnalysisServer server) => new ServerDomainHandler(server)); | 294 domainId, (AnalysisServer server) => new ServerDomainHandler(server)); |
| 266 registerExtension( | 295 registerExtension( |
| 267 domainId, (AnalysisServer server) => new AnalysisDomainHandler(server)); | 296 domainId, (AnalysisServer server) => new AnalysisDomainHandler(server)); |
| 268 registerExtension( | 297 registerExtension( |
| 269 domainId, (AnalysisServer server) => new EditDomainHandler(server)); | 298 domainId, (AnalysisServer server) => new EditDomainHandler(server)); |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 void _validateNavigationContributorExtension(Object extension) { | 391 void _validateNavigationContributorExtension(Object extension) { |
| 363 if (extension is! NavigationContributor) { | 392 if (extension is! NavigationContributor) { |
| 364 String id = navigationContributorExtensionPoint.uniqueIdentifier; | 393 String id = navigationContributorExtensionPoint.uniqueIdentifier; |
| 365 throw new ExtensionError( | 394 throw new ExtensionError( |
| 366 'Extensions to $id must be an NavigationContributor'); | 395 'Extensions to $id must be an NavigationContributor'); |
| 367 } | 396 } |
| 368 } | 397 } |
| 369 | 398 |
| 370 /** | 399 /** |
| 371 * Validate the given extension by throwing an [ExtensionError] if it is not a | 400 * Validate the given extension by throwing an [ExtensionError] if it is not a |
| 401 * valid occurrences contributor. |
| 402 */ |
| 403 void _validateOccurrencesContributorExtension(Object extension) { |
| 404 if (extension is! OccurrencesContributor) { |
| 405 String id = occurrencesContributorExtensionPoint.uniqueIdentifier; |
| 406 throw new ExtensionError( |
| 407 'Extensions to $id must be an OccurrencesContributor'); |
| 408 } |
| 409 } |
| 410 |
| 411 /** |
| 412 * Validate the given extension by throwing an [ExtensionError] if it is not a |
| 372 * valid analysis domain receiver. | 413 * valid analysis domain receiver. |
| 373 */ | 414 */ |
| 374 void _validateSetAnalysisDomainFunction(Object extension) { | 415 void _validateSetAnalysisDomainFunction(Object extension) { |
| 375 if (extension is! SetAnalysisDomain) { | 416 if (extension is! SetAnalysisDomain) { |
| 376 String id = setAnalysisDomainExtensionPoint.uniqueIdentifier; | 417 String id = setAnalysisDomainExtensionPoint.uniqueIdentifier; |
| 377 throw new ExtensionError( | 418 throw new ExtensionError( |
| 378 'Extensions to $id must be a SetAnalysisDomain function'); | 419 'Extensions to $id must be a SetAnalysisDomain function'); |
| 379 } | 420 } |
| 380 } | 421 } |
| 381 } | 422 } |
| OLD | NEW |