Index: pkg/analysis_server/lib/src/services/completion/dart_completion_manager.dart |
diff --git a/pkg/analysis_server/lib/src/services/completion/dart_completion_manager.dart b/pkg/analysis_server/lib/src/services/completion/dart_completion_manager.dart |
index 05a8abd7022c630ea449095ec206a22987db90ce..a42fb5b66228e793b225b38c253977a312192df2 100644 |
--- a/pkg/analysis_server/lib/src/services/completion/dart_completion_manager.dart |
+++ b/pkg/analysis_server/lib/src/services/completion/dart_completion_manager.dart |
@@ -13,9 +13,9 @@ import 'package:analysis_server/src/provisional/completion/completion_core.dart' |
import 'package:analysis_server/src/provisional/completion/dart/completion_target.dart'; |
import 'package:analysis_server/src/services/completion/arglist_contributor.dart'; |
import 'package:analysis_server/src/services/completion/combinator_contributor.dart'; |
-import 'package:analysis_server/src/services/completion/common_usage_computer.dart'; |
import 'package:analysis_server/src/services/completion/completion_manager.dart'; |
-import 'package:analysis_server/src/services/completion/contribution_sorter.dart'; |
+import 'package:analysis_server/src/services/completion/dart/common_usage_sorter.dart'; |
+import 'package:analysis_server/src/services/completion/dart/contribution_sorter.dart'; |
import 'package:analysis_server/src/services/completion/dart_completion_cache.dart'; |
import 'package:analysis_server/src/services/completion/imported_reference_contributor.dart'; |
import 'package:analysis_server/src/services/completion/keyword_contributor.dart'; |
@@ -24,8 +24,6 @@ import 'package:analysis_server/src/services/completion/optype.dart'; |
import 'package:analysis_server/src/services/completion/prefixed_element_contributor.dart'; |
import 'package:analysis_server/src/services/completion/uri_contributor.dart'; |
import 'package:analysis_server/src/services/search/search_engine.dart'; |
-import 'package:analyzer/src/context/context.dart' |
- show AnalysisFutureHelper, AnalysisContextImpl; |
import 'package:analyzer/src/generated/ast.dart'; |
import 'package:analyzer/src/generated/engine.dart' hide AnalysisContextImpl; |
import 'package:analyzer/src/generated/scanner.dart'; |
@@ -79,13 +77,13 @@ class DartCompletionManager extends CompletionManager { |
* The [defaultContributionSorter] is a long-lived object that isn't allowed |
* to maintain state between calls to [ContributionSorter#sort(...)]. |
*/ |
- static ContributionSorter defaultContributionSorter = |
- new CommonUsageComputer(); |
+ static DartContributionSorter defaultContributionSorter = |
+ new CommonUsageSorter(); |
final SearchEngine searchEngine; |
final DartCompletionCache cache; |
List<DartCompletionContributor> contributors; |
- ContributionSorter contributionSorter; |
+ DartContributionSorter contributionSorter; |
DartCompletionManager( |
AnalysisContext context, this.searchEngine, Source source, this.cache, |
@@ -180,8 +178,11 @@ class DartCompletionManager extends CompletionManager { |
return c.computeFast(request); |
}); |
}); |
- _processAnalysisRequest(request, |
- contributionSorter.sort(request, request.suggestions)); |
+ // TODO(danrubel) current sorter requires no additional analysis, |
+ // but need to handle the returned future the same way that futures |
+ // returned from contributors are handled once this method is refactored |
+ // to be async. |
+ /* await */ contributionSorter.sort(request, request.suggestions); |
// TODO (danrubel) if request is obsolete |
// (processAnalysisRequest returns false) |
// then send empty results |
@@ -224,8 +225,11 @@ class DartCompletionManager extends CompletionManager { |
performance.logElapseTime(completeTag); |
bool last = --count == 0; |
if (changed || last) { |
- _processAnalysisRequest(request, |
- contributionSorter.sort(request, request.suggestions)); |
+ // TODO(danrubel) current sorter requires no additional analysis, |
+ // but need to handle the returned future the same way that futures |
+ // returned from contributors are handled once this method is refactored |
+ // to be async. |
+ /* await */ contributionSorter.sort(request, request.suggestions); |
// TODO (danrubel) if request is obsolete |
// (processAnalysisRequest returns false) |
// then send empty results |
@@ -286,38 +290,6 @@ class DartCompletionManager extends CompletionManager { |
return null; |
}, test: (e) => e is AnalysisNotScheduledError); |
} |
- |
- /** |
- * Process the analysis [analysis] and any subsequent requests. |
- * Return a [Future] that returns `true` |
- * once all analysis requests have been processed |
- * or `false` if the original completion request is obsolete |
- * and processing requests was terminated before finished. |
- */ |
- Future<bool> _processAnalysisRequest( |
- CompletionRequest request, AnalysisRequest analysis) { |
- // Return if no additional analysis is necessary |
- if (analysis == null) { |
- return new Future.value(true); |
- } |
- |
- // Check to see if the result is already cached |
- var cachedValue = context.getResult(analysis.target, analysis.descriptor); |
- if (cachedValue != null) { |
- return _processAnalysisRequest( |
- request, analysis.callback(request, cachedValue)); |
- } |
- |
- // TODO (danrubel) determine when completion request is obsolete |
- // and analysis should be terminated before requesting additional analysis |
- |
- // Request additional analysis |
- return new AnalysisFutureHelper((context as AnalysisContextImpl), |
- analysis.target, analysis.descriptor).computeAsync().then((value) { |
- return _processAnalysisRequest( |
- request, analysis.callback(request, cachedValue)); |
- }); |
- } |
} |
/** |