| 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/provisional/completion/completion_core.dart' | 10 import 'package:analysis_server/src/provisional/completion/completion_core.dart' |
| 11 show AnalysisRequest, CompletionContributor, CompletionRequest; | 11 show AnalysisRequest, CompletionContributor, CompletionRequest; |
| 12 import 'package:analysis_server/src/provisional/completion/dart/completion_targe
t.dart'; | 12 import 'package:analysis_server/src/provisional/completion/dart/completion_targe
t.dart'; |
| 13 import 'package:analysis_server/src/services/completion/arglist_contributor.dart
'; | 13 import 'package:analysis_server/src/services/completion/arglist_contributor.dart
'; |
| 14 import 'package:analysis_server/src/services/completion/combinator_contributor.d
art'; | 14 import 'package:analysis_server/src/services/completion/combinator_contributor.d
art'; |
| 15 import 'package:analysis_server/src/services/completion/completion_core.dart'; | 15 import 'package:analysis_server/src/services/completion/completion_core.dart'; |
| 16 import 'package:analysis_server/src/services/completion/completion_manager.dart'
; | 16 import 'package:analysis_server/src/services/completion/completion_manager.dart'
; |
| 17 import 'package:analysis_server/src/services/completion/dart/common_usage_sorter
.dart'; | 17 import 'package:analysis_server/src/services/completion/dart/common_usage_sorter
.dart'; |
| 18 import 'package:analysis_server/src/services/completion/dart/completion_manager.
dart' | |
| 19 as newImpl; | |
| 20 import 'package:analysis_server/src/services/completion/dart/contribution_sorter
.dart'; | 18 import 'package:analysis_server/src/services/completion/dart/contribution_sorter
.dart'; |
| 21 import 'package:analysis_server/src/services/completion/dart_completion_cache.da
rt'; | 19 import 'package:analysis_server/src/services/completion/dart_completion_cache.da
rt'; |
| 22 import 'package:analysis_server/src/services/completion/imported_reference_contr
ibutor.dart'; | 20 import 'package:analysis_server/src/services/completion/imported_reference_contr
ibutor.dart'; |
| 23 import 'package:analysis_server/src/services/completion/local_reference_contribu
tor.dart'; | 21 import 'package:analysis_server/src/services/completion/local_reference_contribu
tor.dart'; |
| 24 import 'package:analysis_server/src/services/completion/optype.dart'; | 22 import 'package:analysis_server/src/services/completion/optype.dart'; |
| 25 import 'package:analysis_server/src/services/completion/prefixed_element_contrib
utor.dart'; | 23 import 'package:analysis_server/src/services/completion/prefixed_element_contrib
utor.dart'; |
| 26 import 'package:analysis_server/src/services/completion/uri_contributor.dart'; | 24 import 'package:analysis_server/src/services/completion/uri_contributor.dart'; |
| 27 import 'package:analysis_server/src/services/search/search_engine.dart'; | 25 import 'package:analysis_server/src/services/search/search_engine.dart'; |
| 28 import 'package:analyzer/file_system/file_system.dart'; | 26 import 'package:analyzer/file_system/file_system.dart'; |
| 29 import 'package:analyzer/src/generated/ast.dart'; | 27 import 'package:analyzer/src/generated/ast.dart'; |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 /** | 78 /** |
| 81 * The [defaultContributionSorter] is a long-lived object that isn't allowed | 79 * The [defaultContributionSorter] is a long-lived object that isn't allowed |
| 82 * to maintain state between calls to [ContributionSorter#sort(...)]. | 80 * to maintain state between calls to [ContributionSorter#sort(...)]. |
| 83 */ | 81 */ |
| 84 static DartContributionSorter defaultContributionSorter = | 82 static DartContributionSorter defaultContributionSorter = |
| 85 new CommonUsageSorter(); | 83 new CommonUsageSorter(); |
| 86 | 84 |
| 87 final SearchEngine searchEngine; | 85 final SearchEngine searchEngine; |
| 88 final DartCompletionCache cache; | 86 final DartCompletionCache cache; |
| 89 List<DartCompletionContributor> contributors; | 87 List<DartCompletionContributor> contributors; |
| 90 List<CompletionContributor> newContributors; | 88 Iterable<CompletionContributor> newContributors; |
| 91 DartContributionSorter contributionSorter; | 89 DartContributionSorter contributionSorter; |
| 92 | 90 |
| 93 DartCompletionManager( | 91 DartCompletionManager( |
| 94 AnalysisContext context, this.searchEngine, Source source, this.cache, | 92 AnalysisContext context, this.searchEngine, Source source, this.cache, |
| 95 [this.contributors, this.newContributors, this.contributionSorter]) | 93 [this.contributors, this.newContributors, this.contributionSorter]) |
| 96 : super(context, source) { | 94 : super(context, source) { |
| 97 if (contributors == null) { | 95 if (contributors == null) { |
| 98 contributors = [ | 96 contributors = [ |
| 99 // LocalReferenceContributor before ImportedReferenceContributor | 97 // LocalReferenceContributor before ImportedReferenceContributor |
| 100 // because local suggestions take precedence | 98 // because local suggestions take precedence |
| 101 // and can hide other suggestions with the same name | 99 // and can hide other suggestions with the same name |
| 102 new LocalReferenceContributor(), | 100 new LocalReferenceContributor(), |
| 103 new ImportedReferenceContributor(), | 101 new ImportedReferenceContributor(), |
| 104 //new KeywordContributor(), | 102 //new KeywordContributor(), |
| 105 new ArgListContributor(), | 103 new ArgListContributor(), |
| 106 new CombinatorContributor(), | 104 new CombinatorContributor(), |
| 107 new PrefixedElementContributor(), | 105 new PrefixedElementContributor(), |
| 108 new UriContributor(), | 106 new UriContributor(), |
| 109 // TODO(brianwilkerson) Use the completion contributor extension point | 107 // TODO(brianwilkerson) Use the completion contributor extension point |
| 110 // to add the contributor below (and eventually, all the contributors). | 108 // to add the contributor below (and eventually, all the contributors). |
| 111 // new NewCompletionWrapper(new InheritedContributor()) | 109 // new NewCompletionWrapper(new InheritedContributor()) |
| 112 ]; | 110 ]; |
| 113 } | 111 } |
| 114 if (newContributors == null) { | 112 if (newContributors == null) { |
| 115 newContributors = <CompletionContributor>[ | 113 newContributors = <CompletionContributor>[ |
| 116 // TODO(danrubel) initialize using plugin API | 114 // TODO(danrubel) initialize using plugin API |
| 117 new newImpl.DartCompletionManager(), | 115 //new newImpl.DartCompletionManager(), |
| 118 ]; | 116 ]; |
| 119 } | 117 } |
| 120 if (contributionSorter == null) { | 118 if (contributionSorter == null) { |
| 121 contributionSorter = defaultContributionSorter; | 119 contributionSorter = defaultContributionSorter; |
| 122 } | 120 } |
| 123 } | 121 } |
| 124 | 122 |
| 125 /** | 123 /** |
| 126 * Create a new initialized Dart source completion manager | 124 * Create a new initialized Dart source completion manager |
| 127 */ | 125 */ |
| 128 factory DartCompletionManager.create( | 126 factory DartCompletionManager.create( |
| 129 AnalysisContext context, SearchEngine searchEngine, Source source) { | 127 AnalysisContext context, |
| 128 SearchEngine searchEngine, |
| 129 Source source, |
| 130 Iterable<CompletionContributor> newContributors) { |
| 130 return new DartCompletionManager(context, searchEngine, source, | 131 return new DartCompletionManager(context, searchEngine, source, |
| 131 new DartCompletionCache(context, source)); | 132 new DartCompletionCache(context, source), null, newContributors); |
| 132 } | 133 } |
| 133 | 134 |
| 134 @override | 135 @override |
| 135 Future<bool> computeCache() { | 136 Future<bool> computeCache() { |
| 136 return waitForAnalysis().then((CompilationUnit unit) { | 137 return waitForAnalysis().then((CompilationUnit unit) { |
| 137 if (unit != null && !cache.isImportInfoCached(unit)) { | 138 if (unit != null && !cache.isImportInfoCached(unit)) { |
| 138 return cache.computeImportInfo(unit, searchEngine, true); | 139 return cache.computeImportInfo(unit, searchEngine, true); |
| 139 } else { | 140 } else { |
| 140 return new Future.value(false); | 141 return new Future.value(false); |
| 141 } | 142 } |
| (...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 447 parameterNames: suggestion.parameterNames, | 448 parameterNames: suggestion.parameterNames, |
| 448 parameterTypes: suggestion.parameterTypes, | 449 parameterTypes: suggestion.parameterTypes, |
| 449 requiredParameterCount: suggestion.requiredParameterCount, | 450 requiredParameterCount: suggestion.requiredParameterCount, |
| 450 hasNamedParameters: suggestion.hasNamedParameters, | 451 hasNamedParameters: suggestion.hasNamedParameters, |
| 451 returnType: suggestion.returnType, | 452 returnType: suggestion.returnType, |
| 452 element: suggestion.element); | 453 element: suggestion.element); |
| 453 } | 454 } |
| 454 } | 455 } |
| 455 } | 456 } |
| 456 } | 457 } |
| OLD | NEW |