Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(508)

Side by Side Diff: pkg/analysis_server/lib/src/plugin/server_plugin.dart

Issue 1470373002: create new Dart specific completion contributor extension point (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: merge Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/plugin/analysis/analysis_domain.dart'; 7 import 'package:analysis_server/plugin/analysis/analysis_domain.dart';
8 import 'package:analysis_server/plugin/analysis/analyzed_files.dart'; 8 import 'package:analysis_server/plugin/analysis/analyzed_files.dart';
9 import 'package:analysis_server/plugin/analysis/navigation/navigation.dart'; 9 import 'package:analysis_server/plugin/analysis/navigation/navigation.dart';
10 import 'package:analysis_server/plugin/analysis/navigation/navigation_core.dart' ; 10 import 'package:analysis_server/plugin/analysis/navigation/navigation_core.dart' ;
11 import 'package:analysis_server/plugin/analysis/occurrences/occurrences.dart'; 11 import 'package:analysis_server/plugin/analysis/occurrences/occurrences.dart';
12 import 'package:analysis_server/plugin/analysis/occurrences/occurrences_core.dar t'; 12 import 'package:analysis_server/plugin/analysis/occurrences/occurrences_core.dar t';
13 import 'package:analysis_server/plugin/edit/assist/assist.dart'; 13 import 'package:analysis_server/plugin/edit/assist/assist.dart';
14 import 'package:analysis_server/plugin/edit/assist/assist_core.dart'; 14 import 'package:analysis_server/plugin/edit/assist/assist_core.dart';
15 import 'package:analysis_server/plugin/edit/fix/fix.dart'; 15 import 'package:analysis_server/plugin/edit/fix/fix.dart';
16 import 'package:analysis_server/plugin/edit/fix/fix_core.dart'; 16 import 'package:analysis_server/plugin/edit/fix/fix_core.dart';
17 import 'package:analysis_server/plugin/protocol/protocol.dart'; 17 import 'package:analysis_server/plugin/protocol/protocol.dart';
18 import 'package:analysis_server/src/analysis_server.dart'; 18 import 'package:analysis_server/src/analysis_server.dart';
19 import 'package:analysis_server/src/domain_analysis.dart'; 19 import 'package:analysis_server/src/domain_analysis.dart';
20 import 'package:analysis_server/src/domain_completion.dart'; 20 import 'package:analysis_server/src/domain_completion.dart';
21 import 'package:analysis_server/src/domain_diagnostic.dart'; 21 import 'package:analysis_server/src/domain_diagnostic.dart';
22 import 'package:analysis_server/src/domain_execution.dart'; 22 import 'package:analysis_server/src/domain_execution.dart';
23 import 'package:analysis_server/src/domain_server.dart'; 23 import 'package:analysis_server/src/domain_server.dart';
24 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'; 25 import 'package:analysis_server/src/domains/analysis/occurrences_dart.dart';
26 import 'package:analysis_server/src/edit/edit_domain.dart'; 26 import 'package:analysis_server/src/edit/edit_domain.dart';
27 import 'package:analysis_server/src/provisional/completion/completion_core.dart' ; 27 import 'package:analysis_server/src/provisional/completion/completion_core.dart' ;
28 import 'package:analysis_server/src/provisional/completion/dart/completion.dart' ;
29 import 'package:analysis_server/src/provisional/completion/dart/completion_dart. dart';
28 import 'package:analysis_server/src/provisional/index/index.dart'; 30 import 'package:analysis_server/src/provisional/index/index.dart';
29 import 'package:analysis_server/src/provisional/index/index_core.dart'; 31 import 'package:analysis_server/src/provisional/index/index_core.dart';
30 import 'package:analysis_server/src/search/search_domain.dart'; 32 import 'package:analysis_server/src/search/search_domain.dart';
33 import 'package:analysis_server/src/services/completion/dart/completion_manager. dart';
31 import 'package:analysis_server/src/services/correction/assist_internal.dart'; 34 import 'package:analysis_server/src/services/correction/assist_internal.dart';
32 import 'package:analysis_server/src/services/correction/fix_internal.dart'; 35 import 'package:analysis_server/src/services/correction/fix_internal.dart';
33 import 'package:analysis_server/src/services/index/index_contributor.dart'; 36 import 'package:analysis_server/src/services/index/index_contributor.dart';
34 import 'package:analyzer/src/generated/engine.dart'; 37 import 'package:analyzer/src/generated/engine.dart';
35 import 'package:plugin/plugin.dart'; 38 import 'package:plugin/plugin.dart';
36 39
37 /** 40 /**
38 * A function that will create a request handler that can be used by the given 41 * A function that will create a request handler that can be used by the given
39 * [server]. 42 * [server].
40 */ 43 */
(...skipping 19 matching lines...) Expand all
60 63
61 /** 64 /**
62 * The simple identifier of the extension point that allows plugins to 65 * The simple identifier of the extension point that allows plugins to
63 * register completion contributors. 66 * register completion contributors.
64 */ 67 */
65 static const String COMPLETION_CONTRIBUTOR_EXTENSION_POINT = 68 static const String COMPLETION_CONTRIBUTOR_EXTENSION_POINT =
66 'completionContributor'; 69 'completionContributor';
67 70
68 /** 71 /**
69 * The simple identifier of the extension point that allows plugins to 72 * The simple identifier of the extension point that allows plugins to
73 * register Dart specific completion contributor factories.
74 */
75 static const String DART_COMPLETION_CONTRIBUTOR_EXTENSION_POINT =
76 'dartCompletionContributor';
77
78 /**
79 * The simple identifier of the extension point that allows plugins to
70 * register domains. 80 * register domains.
71 */ 81 */
72 static const String DOMAIN_EXTENSION_POINT = 'domain'; 82 static const String DOMAIN_EXTENSION_POINT = 'domain';
73 83
74 /** 84 /**
75 * The simple identifier of the extension point that allows plugins to 85 * The simple identifier of the extension point that allows plugins to
76 * register fix contributors. 86 * register fix contributors.
77 */ 87 */
78 static const String FIX_CONTRIBUTOR_EXTENSION_POINT = 'fixContributor'; 88 static const String FIX_CONTRIBUTOR_EXTENSION_POINT = 'fixContributor';
79 89
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 */ 129 */
120 ExtensionPoint assistContributorExtensionPoint; 130 ExtensionPoint assistContributorExtensionPoint;
121 131
122 /** 132 /**
123 * The extension point that allows plugins to register completion 133 * The extension point that allows plugins to register completion
124 * contributors. 134 * contributors.
125 */ 135 */
126 ExtensionPoint completionContributorExtensionPoint; 136 ExtensionPoint completionContributorExtensionPoint;
127 137
128 /** 138 /**
139 * The extension point that allows plugins to register Dart specific
140 * completion contributor factories.
141 */
142 ExtensionPoint dartCompletionContributorExtensionPoint;
143
144 /**
129 * The extension point that allows plugins to register domains with the 145 * The extension point that allows plugins to register domains with the
130 * server. 146 * server.
131 */ 147 */
132 ExtensionPoint domainExtensionPoint; 148 ExtensionPoint domainExtensionPoint;
133 149
134 /** 150 /**
135 * The extension point that allows plugins to register fix contributors with 151 * The extension point that allows plugins to register fix contributors with
136 * the server. 152 * the server.
137 */ 153 */
138 ExtensionPoint fixContributorExtensionPoint; 154 ExtensionPoint fixContributorExtensionPoint;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 assistContributorExtensionPoint.extensions; 202 assistContributorExtensionPoint.extensions;
187 203
188 /** 204 /**
189 * Return a list containing all of the completion contributors that were 205 * Return a list containing all of the completion contributors that were
190 * contributed. 206 * contributed.
191 */ 207 */
192 List<CompletionContributor> get completionContributors => 208 List<CompletionContributor> get completionContributors =>
193 completionContributorExtensionPoint.extensions; 209 completionContributorExtensionPoint.extensions;
194 210
195 /** 211 /**
212 * Return a list containing all of the Dart specific completion contributor
213 * factories that were contributed.
214 */
215 List<
216 DartCompletionContributorFactory> get dartCompletionContributorFactories = >
217 dartCompletionContributorExtensionPoint.extensions;
218
219 /**
196 * Return a list containing all of the fix contributors that were contributed. 220 * Return a list containing all of the fix contributors that were contributed.
197 */ 221 */
198 List<FixContributor> get fixContributors => 222 List<FixContributor> get fixContributors =>
199 fixContributorExtensionPoint.extensions; 223 fixContributorExtensionPoint.extensions;
200 224
201 /** 225 /**
202 * Return a list containing all of the index contributors that were 226 * Return a list containing all of the index contributors that were
203 * contributed. 227 * contributed.
204 */ 228 */
205 List<IndexContributor> get indexContributors => 229 List<IndexContributor> get indexContributors =>
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 _validateSetAnalysisDomainFunction); 273 _validateSetAnalysisDomainFunction);
250 analyzedFilePatternsExtensionPoint = registerExtensionPoint( 274 analyzedFilePatternsExtensionPoint = registerExtensionPoint(
251 ANALYZED_FILE_PATTERNS_EXTENSION_POINT, 275 ANALYZED_FILE_PATTERNS_EXTENSION_POINT,
252 _validateAnalyzedFilePatternsExtension); 276 _validateAnalyzedFilePatternsExtension);
253 assistContributorExtensionPoint = registerExtensionPoint( 277 assistContributorExtensionPoint = registerExtensionPoint(
254 ASSIST_CONTRIBUTOR_EXTENSION_POINT, 278 ASSIST_CONTRIBUTOR_EXTENSION_POINT,
255 _validateAssistContributorExtension); 279 _validateAssistContributorExtension);
256 completionContributorExtensionPoint = registerExtensionPoint( 280 completionContributorExtensionPoint = registerExtensionPoint(
257 COMPLETION_CONTRIBUTOR_EXTENSION_POINT, 281 COMPLETION_CONTRIBUTOR_EXTENSION_POINT,
258 _validateCompletionContributorExtension); 282 _validateCompletionContributorExtension);
283 dartCompletionContributorExtensionPoint = registerExtensionPoint(
284 DART_COMPLETION_CONTRIBUTOR_EXTENSION_POINT,
285 _validateDartCompletionContributorExtension);
259 domainExtensionPoint = registerExtensionPoint( 286 domainExtensionPoint = registerExtensionPoint(
260 DOMAIN_EXTENSION_POINT, _validateDomainExtension); 287 DOMAIN_EXTENSION_POINT, _validateDomainExtension);
261 fixContributorExtensionPoint = registerExtensionPoint( 288 fixContributorExtensionPoint = registerExtensionPoint(
262 FIX_CONTRIBUTOR_EXTENSION_POINT, _validateFixContributorExtension); 289 FIX_CONTRIBUTOR_EXTENSION_POINT, _validateFixContributorExtension);
263 indexContributorExtensionPoint = registerExtensionPoint( 290 indexContributorExtensionPoint = registerExtensionPoint(
264 INDEX_CONTRIBUTOR_EXTENSION_POINT, _validateIndexContributorExtension); 291 INDEX_CONTRIBUTOR_EXTENSION_POINT, _validateIndexContributorExtension);
265 navigationContributorExtensionPoint = registerExtensionPoint( 292 navigationContributorExtensionPoint = registerExtensionPoint(
266 NAVIGATION_CONTRIBUTOR_EXTENSION_POINT, 293 NAVIGATION_CONTRIBUTOR_EXTENSION_POINT,
267 _validateNavigationContributorExtension); 294 _validateNavigationContributorExtension);
268 occurrencesContributorExtensionPoint = registerExtensionPoint( 295 occurrencesContributorExtensionPoint = registerExtensionPoint(
(...skipping 15 matching lines...) Expand all
284 registerExtension(ANALYZED_FILE_PATTERNS_EXTENSION_POINT_ID, patterns); 311 registerExtension(ANALYZED_FILE_PATTERNS_EXTENSION_POINT_ID, patterns);
285 // 312 //
286 // Register assist contributors. 313 // Register assist contributors.
287 // 314 //
288 registerExtension( 315 registerExtension(
289 ASSIST_CONTRIBUTOR_EXTENSION_POINT_ID, new DefaultAssistContributor()); 316 ASSIST_CONTRIBUTOR_EXTENSION_POINT_ID, new DefaultAssistContributor());
290 // 317 //
291 // Register completion contributors. 318 // Register completion contributors.
292 // 319 //
293 // TODO(brianwilkerson) Register the completion contributors. 320 // TODO(brianwilkerson) Register the completion contributors.
294 // registerExtension(COMPLETION_CONTRIBUTOR_EXTENSION_POINT_ID, ???); 321 //registerExtension(COMPLETION_CONTRIBUTOR_EXTENSION_POINT_ID, ???);
322 registerExtension(DART_COMPLETION_CONTRIBUTOR_EXTENSION_POINT_ID,
323 defaultDartCompletionContributorFactory);
295 // 324 //
296 // Register analysis contributors. 325 // Register analysis contributors.
297 // 326 //
298 registerExtension(NAVIGATION_CONTRIBUTOR_EXTENSION_POINT_ID, 327 registerExtension(NAVIGATION_CONTRIBUTOR_EXTENSION_POINT_ID,
299 new DartNavigationComputer()); 328 new DartNavigationComputer());
300 registerExtension(OCCURRENCES_CONTRIBUTOR_EXTENSION_POINT_ID, 329 registerExtension(OCCURRENCES_CONTRIBUTOR_EXTENSION_POINT_ID,
301 new DartOccurrencesComputer()); 330 new DartOccurrencesComputer());
302 // 331 //
303 // Register domains. 332 // Register domains.
304 // 333 //
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 void _validateCompletionContributorExtension(Object extension) { 401 void _validateCompletionContributorExtension(Object extension) {
373 if (extension is! CompletionContributor) { 402 if (extension is! CompletionContributor) {
374 String id = completionContributorExtensionPoint.uniqueIdentifier; 403 String id = completionContributorExtensionPoint.uniqueIdentifier;
375 throw new ExtensionError( 404 throw new ExtensionError(
376 'Extensions to $id must be an CompletionContributor'); 405 'Extensions to $id must be an CompletionContributor');
377 } 406 }
378 } 407 }
379 408
380 /** 409 /**
381 * Validate the given extension by throwing an [ExtensionError] if it is not a 410 * Validate the given extension by throwing an [ExtensionError] if it is not a
411 * valid Dart specific completion contributor.
412 */
413 void _validateDartCompletionContributorExtension(Object extension) {
414 if (extension is! DartCompletionContributorFactory) {
415 String id = dartCompletionContributorExtensionPoint.uniqueIdentifier;
416 throw new ExtensionError(
417 'Extensions to $id must be a DartCompletionContributorFactory');
418 }
419 }
420
421 /**
422 * Validate the given extension by throwing an [ExtensionError] if it is not a
382 * valid domain. 423 * valid domain.
383 */ 424 */
384 void _validateDomainExtension(Object extension) { 425 void _validateDomainExtension(Object extension) {
385 if (extension is! RequestHandlerFactory) { 426 if (extension is! RequestHandlerFactory) {
386 String id = domainExtensionPoint.uniqueIdentifier; 427 String id = domainExtensionPoint.uniqueIdentifier;
387 throw new ExtensionError( 428 throw new ExtensionError(
388 'Extensions to $id must be a RequestHandlerFactory'); 429 'Extensions to $id must be a RequestHandlerFactory');
389 } 430 }
390 } 431 }
391 432
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 * valid analysis domain receiver. 481 * valid analysis domain receiver.
441 */ 482 */
442 void _validateSetAnalysisDomainFunction(Object extension) { 483 void _validateSetAnalysisDomainFunction(Object extension) {
443 if (extension is! SetAnalysisDomain) { 484 if (extension is! SetAnalysisDomain) {
444 String id = setAnalysisDomainExtensionPoint.uniqueIdentifier; 485 String id = setAnalysisDomainExtensionPoint.uniqueIdentifier;
445 throw new ExtensionError( 486 throw new ExtensionError(
446 'Extensions to $id must be a SetAnalysisDomain function'); 487 'Extensions to $id must be a SetAnalysisDomain function');
447 } 488 }
448 } 489 }
449 } 490 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698