Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(166)

Unified Diff: pkg/analysis_server/lib/src/services/completion/dart_completion_manager.dart

Issue 1538883003: remove internal streaming of results, remove obsolete test, cleanup unused code (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: merge Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 91b027e5bdf2f9ec1902e27f80ba25c8d85b8922..60634f6ce047f1770ede05b7fa848d242034681c 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
@@ -8,11 +8,14 @@ import 'dart:async';
import 'package:analysis_server/plugin/protocol/protocol.dart';
import 'package:analysis_server/src/provisional/completion/completion_core.dart'
- show AnalysisRequest, CompletionContributor, CompletionRequest;
+ show
+ AnalysisRequest,
+ CompletionContributor,
+ CompletionRequest,
+ CompletionResult;
import 'package:analysis_server/src/services/completion/completion_core.dart';
import 'package:analysis_server/src/services/completion/completion_manager.dart';
import 'package:analysis_server/src/services/search/search_engine.dart';
-import 'package:analyzer/src/generated/ast.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/source.dart';
@@ -44,62 +47,27 @@ class DartCompletionManager extends CompletionManager {
context, searchEngine, source, newContributors);
}
- /**
- * If there is remaining work to be done, then wait for the unit to be
- * resolved and request that each remaining contributor finish their work.
- * Return a [Future] that completes when the last notification has been sent.
- */
- Future computeFull(
- CompletionRequestImpl request, CompletionPerformance performance) async {
+ @override
+ Future<CompletionResult> computeSuggestions(
+ CompletionRequestImpl request) async {
+ CompletionPerformance performance = new CompletionPerformance();
List<CompletionSuggestion> suggestions = <CompletionSuggestion>[];
- performance.logStartTime('computeSuggestions');
+ const COMPUTE_SUGGESTIONS_TAG = 'computeSuggestions';
+ performance.logStartTime(COMPUTE_SUGGESTIONS_TAG);
for (CompletionContributor contributor in newContributors) {
String contributorTag = 'computeSuggestions - ${contributor.runtimeType}';
performance.logStartTime(contributorTag);
suggestions.addAll(await contributor.computeSuggestions(request));
performance.logElapseTime(contributorTag);
}
- performance.logElapseTime('computeSuggestions');
+ performance.logElapseTime(COMPUTE_SUGGESTIONS_TAG);
// TODO (danrubel) if request is obsolete
// (processAnalysisRequest returns false)
// then send empty results
- if (controller != null && !controller.isClosed) {
- controller.add(new CompletionResultImpl(request.replacementOffset,
- request.replacementLength, suggestions, true));
- controller.close();
- }
- }
-
- @override
- void computeSuggestions(CompletionRequest request) {
- CompletionPerformance performance = new CompletionPerformance();
- performance.logElapseTime('compute', () {
- computeFull(request, performance);
- });
- }
-
- /**
- * Return a future that either (a) completes with the resolved compilation
- * unit when analysis is complete, or (b) completes with null if the
- * compilation unit is never going to be resolved.
- */
- Future<CompilationUnit> waitForAnalysis() {
- List<Source> libraries = context.getLibrariesContaining(source);
- assert(libraries != null);
- if (libraries.length == 0) {
- return new Future.value(null);
- }
- Source libSource = libraries[0];
- assert(libSource != null);
- return context
- .computeResolvedCompilationUnitAsync(source, libSource)
- .catchError((_) {
- // This source file is not scheduled for analysis, so a resolved
- // compilation unit is never going to get computed.
- return null;
- }, test: (e) => e is AnalysisNotScheduledError);
+ return new CompletionResultImpl(
+ request.replacementOffset, request.replacementLength, suggestions);
}
}

Powered by Google App Engine
This is Rietveld 408576698