| Index: pkg/analysis_server/lib/src/provisional/completion/completion_dart.dart
|
| diff --git a/pkg/analysis_server/lib/src/provisional/completion/completion_dart.dart b/pkg/analysis_server/lib/src/provisional/completion/completion_dart.dart
|
| index e52c4332423381b6259f6d7b01b9d6dddcf67038..04333641e88fd3a80699a88a6d44d67923c95ac0 100644
|
| --- a/pkg/analysis_server/lib/src/provisional/completion/completion_dart.dart
|
| +++ b/pkg/analysis_server/lib/src/provisional/completion/completion_dart.dart
|
| @@ -4,55 +4,25 @@
|
|
|
| library analysis_server.src.provisional.completion.completion_dart;
|
|
|
| +import 'dart:async';
|
| +
|
| import 'package:analysis_server/plugin/protocol/protocol.dart';
|
| import 'package:analysis_server/src/provisional/completion/completion_core.dart';
|
| import 'package:analysis_server/src/provisional/completion/dart/completion_target.dart';
|
| import 'package:analyzer/src/generated/ast.dart';
|
| -import 'package:analyzer/src/generated/engine.dart';
|
| -import 'package:analyzer/src/generated/source.dart';
|
|
|
| /**
|
| - * An object used to produce completions for a specific error within a Dart
|
| - * file. Completion contributors are long-lived objects and must not retain any
|
| - * state between invocations of [computeSuggestions].
|
| + * An object used to produce completions
|
| + * at a specific location within a Dart file.
|
| *
|
| - * Clients may extend this class when implementing plugins.
|
| + * Clients may implement this class when implementing plugins.
|
| */
|
| -abstract class DartCompletionContributor implements CompletionContributor {
|
| - @override
|
| - List<CompletionSuggestion> computeSuggestions(CompletionRequest request) {
|
| - if (request is DartCompletionRequest) {
|
| - return internalComputeSuggestions(request);
|
| - }
|
| - AnalysisContext context = request.context;
|
| - Source source = request.source;
|
| - List<Source> libraries = context.getLibrariesContaining(source);
|
| - if (libraries.length < 1) {
|
| - return null;
|
| - }
|
| -// CompilationUnit unit =
|
| -// context.getResolvedCompilationUnit2(source, libraries[0]);
|
| -// bool isResolved = true;
|
| -// if (unit == null) {
|
| -// // TODO(brianwilkerson) Implement a method for getting a parsed
|
| -// // compilation unit without parsing the unit if it hasn't been parsed.
|
| -// unit = context.getParsedCompilationUnit(source);
|
| -// if (unit == null) {
|
| -// return null;
|
| -// }
|
| -// isResolved = false;
|
| -// }
|
| -// DartCompletionRequest dartRequest =
|
| -// new DartCompletionRequestImpl(request, unit, isResolved);
|
| -// return internalComputeSuggestions(dartRequest);
|
| - return null;
|
| - }
|
| -
|
| +abstract class DartCompletionContributor {
|
| /**
|
| - * Compute a list of completion suggestions based on the given completion
|
| - * [request]. Return the suggestions that were computed.
|
| + * Return a [Future] that completes with a list of suggestions
|
| + * for the given completion [request].
|
| */
|
| - List<CompletionSuggestion> internalComputeSuggestions(
|
| + Future<List<CompletionSuggestion>> computeSuggestions(
|
| DartCompletionRequest request);
|
| }
|
|
|
| @@ -63,28 +33,18 @@ abstract class DartCompletionContributor implements CompletionContributor {
|
| */
|
| abstract class DartCompletionRequest extends CompletionRequest {
|
| /**
|
| - * Return `true` if the compilation [unit] is resolved.
|
| - */
|
| - bool get isResolved;
|
| -
|
| - /**
|
| * Return the completion target. This determines what part of the parse tree
|
| * will receive the newly inserted text.
|
| */
|
| CompletionTarget get target;
|
|
|
| /**
|
| - * Cached information from a prior code completion operation.
|
| - */
|
| - //DartCompletionCache get cache;
|
| -
|
| - /**
|
| - * Return the compilation unit in which the completion was requested.
|
| - */
|
| - CompilationUnit get unit;
|
| -
|
| - /**
|
| - * Information about the types of suggestions that should be included.
|
| + * Return a [Future] that completes with a compilation unit in which
|
| + * all declarations in all scopes containing [target] have been resolved.
|
| + * The [Future] may return `null` if the unit cannot be resolved
|
| + * (e.g. unlinked part file).
|
| + * Any information obtained from [target] prior to calling this method
|
| + * should be discarded as it may have changed.
|
| */
|
| - //OpType get _optype;
|
| + Future<CompilationUnit> resolveDeclarationsInScope();
|
| }
|
|
|