| 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 abd1eddb595f35fe19e7b628a0aa4928576bbaad..cc081074196c4f57f8dd1371dc3d5a915634afd4 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
|
| @@ -7,9 +7,10 @@ library services.completion.dart.manager;
|
| import 'dart:async';
|
|
|
| import 'package:analysis_server/plugin/protocol/protocol.dart';
|
| +import 'package:analysis_server/src/analysis_server.dart';
|
| import 'package:analysis_server/src/provisional/completion/completion_core.dart'
|
| show CompletionContributor, CompletionRequest;
|
| -import 'package:analysis_server/src/provisional/completion/completion_dart.dart';
|
| +import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart';
|
| import 'package:analysis_server/src/provisional/completion/dart/completion_target.dart';
|
| import 'package:analysis_server/src/services/completion/completion_core.dart';
|
| import 'package:analysis_server/src/services/completion/dart/keyword_contributor.dart';
|
| @@ -23,15 +24,18 @@ import 'package:analyzer/src/task/dart.dart';
|
| import 'package:analyzer/task/dart.dart';
|
|
|
| /**
|
| + * A factory for constructing the default set of [DartCompletionContributor]s.
|
| + * Do not call this function directly...
|
| + * use ServerPlugin.dartCompletionContributorFactories
|
| + */
|
| +List<DartCompletionContributor> defaultDartCompletionContributorFactory() =>
|
| + [new KeywordContributor(),];
|
| +
|
| +/**
|
| * [DartCompletionManager] determines if a completion request is Dart specific
|
| * and forwards those requests to all [DartCompletionContributor]s.
|
| */
|
| class DartCompletionManager implements CompletionContributor {
|
| - // TODO(danrubel) initialize using plugin API
|
| - List<DartCompletionContributor> contributors = <DartCompletionContributor>[
|
| - new KeywordContributor(),
|
| - ];
|
| -
|
| @override
|
| Future<List<CompletionSuggestion>> computeSuggestions(
|
| CompletionRequest request) {
|
| @@ -48,6 +52,15 @@ class DartCompletionManager implements CompletionContributor {
|
| */
|
| Future<List<CompletionSuggestion>> _computeDartSuggestions(
|
| DartCompletionRequest request) async {
|
| + // Build the Dart specific completion contributors
|
| + List<DartCompletionContributor> contributors =
|
| + <DartCompletionContributor>[];
|
| + for (DartCompletionContributorFactory contributorFactory
|
| + in request.serverPlugin.dartCompletionContributorFactories) {
|
| + contributors.addAll(contributorFactory());
|
| + }
|
| +
|
| + // Request Dart specific completions from each contributor
|
| List<CompletionSuggestion> suggestions = <CompletionSuggestion>[];
|
| for (DartCompletionContributor contributor in contributors) {
|
| suggestions.addAll(await contributor.computeSuggestions(request));
|
| @@ -76,13 +89,13 @@ class DartCompletionRequestImpl extends CompletionRequestImpl
|
| * Initialize a newly created completion request based on the given request.
|
| */
|
| factory DartCompletionRequestImpl.forRequest(CompletionRequest request) {
|
| - return new DartCompletionRequestImpl._(request.context,
|
| + return new DartCompletionRequestImpl._(request.server, request.context,
|
| request.resourceProvider, request.source, request.offset);
|
| }
|
|
|
| - DartCompletionRequestImpl._(AnalysisContext context,
|
| + DartCompletionRequestImpl._(AnalysisServer server, AnalysisContext context,
|
| ResourceProvider resourceProvider, Source source, int offset)
|
| - : super(context, resourceProvider, source, offset);
|
| + : super(server, context, resourceProvider, source, offset);
|
|
|
| @override
|
| Future<CompilationUnit> resolveDeclarationsInScope() async {
|
|
|