| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 services.completion.dart; | 5 library services.completion.dart; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:analysis_server/plugin/protocol/protocol.dart'; | 9 import 'package:analysis_server/plugin/protocol/protocol.dart'; |
| 10 import 'package:analysis_server/src/analysis_server.dart'; | 10 import 'package:analysis_server/src/analysis_server.dart'; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 import 'package:analysis_server/src/services/completion/local_reference_contribu
tor.dart'; | 24 import 'package:analysis_server/src/services/completion/local_reference_contribu
tor.dart'; |
| 25 import 'package:analysis_server/src/services/completion/optype.dart'; | 25 import 'package:analysis_server/src/services/completion/optype.dart'; |
| 26 import 'package:analysis_server/src/services/completion/prefixed_element_contrib
utor.dart'; | 26 import 'package:analysis_server/src/services/completion/prefixed_element_contrib
utor.dart'; |
| 27 import 'package:analysis_server/src/services/completion/uri_contributor.dart'; | 27 import 'package:analysis_server/src/services/completion/uri_contributor.dart'; |
| 28 import 'package:analysis_server/src/services/search/search_engine.dart'; | 28 import 'package:analysis_server/src/services/search/search_engine.dart'; |
| 29 import 'package:analyzer/file_system/file_system.dart'; | 29 import 'package:analyzer/file_system/file_system.dart'; |
| 30 import 'package:analyzer/src/generated/ast.dart'; | 30 import 'package:analyzer/src/generated/ast.dart'; |
| 31 import 'package:analyzer/src/generated/engine.dart'; | 31 import 'package:analyzer/src/generated/engine.dart'; |
| 32 import 'package:analyzer/src/generated/scanner.dart'; | 32 import 'package:analyzer/src/generated/scanner.dart'; |
| 33 import 'package:analyzer/src/generated/source.dart'; | 33 import 'package:analyzer/src/generated/source.dart'; |
| 34 import 'package:analyzer/task/model.dart'; |
| 34 | 35 |
| 35 const int DART_RELEVANCE_COMMON_USAGE = 1200; | 36 const int DART_RELEVANCE_COMMON_USAGE = 1200; |
| 36 const int DART_RELEVANCE_DEFAULT = 1000; | 37 const int DART_RELEVANCE_DEFAULT = 1000; |
| 37 const int DART_RELEVANCE_HIGH = 2000; | 38 const int DART_RELEVANCE_HIGH = 2000; |
| 38 const int DART_RELEVANCE_INHERITED_ACCESSOR = 1057; | 39 const int DART_RELEVANCE_INHERITED_ACCESSOR = 1057; |
| 39 const int DART_RELEVANCE_INHERITED_FIELD = 1058; | 40 const int DART_RELEVANCE_INHERITED_FIELD = 1058; |
| 40 const int DART_RELEVANCE_INHERITED_METHOD = 1057; | 41 const int DART_RELEVANCE_INHERITED_METHOD = 1057; |
| 41 const int DART_RELEVANCE_KEYWORD = 1055; | 42 const int DART_RELEVANCE_KEYWORD = 1055; |
| 42 const int DART_RELEVANCE_LOCAL_ACCESSOR = 1057; | 43 const int DART_RELEVANCE_LOCAL_ACCESSOR = 1057; |
| 43 const int DART_RELEVANCE_LOCAL_FIELD = 1058; | 44 const int DART_RELEVANCE_LOCAL_FIELD = 1058; |
| (...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 413 requiredParameterCount: suggestion.requiredParameterCount, | 414 requiredParameterCount: suggestion.requiredParameterCount, |
| 414 hasNamedParameters: suggestion.hasNamedParameters, | 415 hasNamedParameters: suggestion.hasNamedParameters, |
| 415 returnType: suggestion.returnType, | 416 returnType: suggestion.returnType, |
| 416 element: suggestion.element); | 417 element: suggestion.element); |
| 417 } | 418 } |
| 418 } | 419 } |
| 419 } | 420 } |
| 420 } | 421 } |
| 421 | 422 |
| 422 /** | 423 /** |
| 423 * A wrapper around a new dart completion contributor that makes it usable where | |
| 424 * an old dart completion contributor is expected. | |
| 425 */ | |
| 426 class NewCompletionWrapper implements DartCompletionContributor { | |
| 427 /** | |
| 428 * The new-style contributor that is being wrapped. | |
| 429 */ | |
| 430 final newApi.DartCompletionContributor contributor; | |
| 431 | |
| 432 /** | |
| 433 * Initialize a newly created wrapper for the given [contributor]. | |
| 434 */ | |
| 435 NewCompletionWrapper(this.contributor); | |
| 436 | |
| 437 @override | |
| 438 bool computeFast(DartCompletionRequest request) { | |
| 439 List<CompletionSuggestion> suggestions = | |
| 440 contributor.computeSuggestions(new OldRequestWrapper(request)); | |
| 441 if (suggestions == null) { | |
| 442 return false; | |
| 443 } | |
| 444 for (CompletionSuggestion suggestion in suggestions) { | |
| 445 request.addSuggestion(suggestion); | |
| 446 } | |
| 447 return true; | |
| 448 } | |
| 449 | |
| 450 @override | |
| 451 Future<bool> computeFull(DartCompletionRequest request) async { | |
| 452 List<CompletionSuggestion> suggestions = | |
| 453 contributor.computeSuggestions(new OldRequestWrapper(request)); | |
| 454 if (suggestions != null) { | |
| 455 for (CompletionSuggestion suggestion in suggestions) { | |
| 456 request.addSuggestion(suggestion); | |
| 457 } | |
| 458 return true; | |
| 459 } | |
| 460 return false; | |
| 461 } | |
| 462 | |
| 463 @override | |
| 464 String toString() => 'wrapped $contributor'; | |
| 465 } | |
| 466 | |
| 467 /** | |
| 468 * A wrapper around an old dart completion request that makes it usable where a | 424 * A wrapper around an old dart completion request that makes it usable where a |
| 469 * new dart completion request is expected. | 425 * new dart completion request is expected. |
| 470 */ | 426 */ |
| 471 class OldRequestWrapper implements newApi.DartCompletionRequest { | 427 class OldRequestWrapper implements newApi.DartCompletionRequest { |
| 472 final DartCompletionRequest request; | 428 final DartCompletionRequest request; |
| 473 | 429 |
| 474 OldRequestWrapper(this.request); | 430 OldRequestWrapper(this.request); |
| 475 | 431 |
| 476 @override | 432 @override |
| 477 AnalysisContext get context => request.context; | 433 AnalysisContext get context => request.context; |
| 478 | 434 |
| 479 @override | 435 @override |
| 480 bool get isResolved => request.unit.element != null; | |
| 481 | |
| 482 @override | |
| 483 int get offset => request.offset; | 436 int get offset => request.offset; |
| 484 | 437 |
| 485 @override | 438 @override |
| 439 CompilationUnit get unit => request.unit; |
| 440 |
| 441 @override |
| 486 ResourceProvider get resourceProvider => request.resourceProvider; | 442 ResourceProvider get resourceProvider => request.resourceProvider; |
| 487 | 443 |
| 488 @override | 444 @override |
| 489 Source get source => request.source; | 445 Source get source => request.source; |
| 490 | 446 |
| 491 @override | 447 @override |
| 492 CompletionTarget get target => request.target; | 448 CompletionTarget get target => request.target; |
| 493 | 449 |
| 494 @override | 450 @override |
| 495 CompilationUnit get unit => request.unit; | 451 String toString() => 'wrapped $request'; |
| 496 | 452 |
| 497 @override | 453 @override |
| 498 String toString() => 'wrapped $request'; | 454 CompletionTarget get parsedTarget => request.target; |
| 455 |
| 456 @override |
| 457 Future<CompletionTarget> get resolvedDeclarationTarget { |
| 458 throw 'not implemented yet'; |
| 459 } |
| 499 } | 460 } |
| OLD | NEW |