| Index: pkg/analysis_server/lib/src/services/completion/imported_computer.dart
|
| diff --git a/pkg/analysis_server/lib/src/services/completion/imported_computer.dart b/pkg/analysis_server/lib/src/services/completion/imported_computer.dart
|
| index 0ac302a9329888ce0df900bd649e6454ab2a64f6..35e063dfcf4a4f99de5b178a13c67548a442f740 100644
|
| --- a/pkg/analysis_server/lib/src/services/completion/imported_computer.dart
|
| +++ b/pkg/analysis_server/lib/src/services/completion/imported_computer.dart
|
| @@ -21,12 +21,16 @@ import 'package:analyzer/src/generated/scanner.dart';
|
| * `completion.getSuggestions` request results.
|
| */
|
| class ImportedComputer extends DartCompletionComputer {
|
| + final bool shouldWaitForLowPrioritySuggestions;
|
| _ImportedSuggestionBuilder builder;
|
|
|
| + ImportedComputer({this.shouldWaitForLowPrioritySuggestions: false});
|
| +
|
| @override
|
| bool computeFast(DartCompletionRequest request) {
|
| builder = request.node.accept(new _ImportedAstVisitor(request));
|
| if (builder != null) {
|
| + builder.shouldWaitForLowPrioritySuggestions = shouldWaitForLowPrioritySuggestions;
|
| return builder.computeFast(request.node);
|
| }
|
| return true;
|
| @@ -211,6 +215,7 @@ class _ImportedAstVisitor extends
|
| * based upon imported elements.
|
| */
|
| class _ImportedSuggestionBuilder implements SuggestionBuilder {
|
| + bool shouldWaitForLowPrioritySuggestions;
|
| final DartCompletionRequest request;
|
| final bool typesOnly;
|
| final bool excludeVoidReturn;
|
| @@ -239,13 +244,19 @@ class _ImportedSuggestionBuilder implements SuggestionBuilder {
|
| * Compute suggested based upon imported elements.
|
| */
|
| Future<bool> computeFull(AstNode node) {
|
| - return cache.computeImportInfo(
|
| - request.unit,
|
| - request.searchEngine).then((_) {
|
| +
|
| + Future<bool> addSuggestions(_) {
|
| _addInheritedSuggestions(node);
|
| _addTopLevelSuggestions();
|
| - return true;
|
| - });
|
| + return new Future.value(true);
|
| + }
|
| +
|
| + Future future = cache.computeImportInfo(request.unit, request.searchEngine);
|
| + if (shouldWaitForLowPrioritySuggestions) {
|
| + return future.then(addSuggestions);
|
| + } else {
|
| + return addSuggestions(true);
|
| + }
|
| }
|
|
|
| /**
|
|
|