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

Unified Diff: pkg/analysis_server/lib/src/domain_completion.dart

Issue 2835053005: Add stopgap for angular autocompletion. (Closed)
Patch Set: fix format Created 3 years, 8 months 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
« no previous file with comments | « pkg/analysis_server/lib/src/analysis_server.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/lib/src/domain_completion.dart
diff --git a/pkg/analysis_server/lib/src/domain_completion.dart b/pkg/analysis_server/lib/src/domain_completion.dart
index 916b20e7f4e4f2a72b50166864c236d1d00a4c1c..0bc5c9c0403c031eb7714b7eebdf1bbefe19f06a 100644
--- a/pkg/analysis_server/lib/src/domain_completion.dart
+++ b/pkg/analysis_server/lib/src/domain_completion.dart
@@ -91,7 +91,6 @@ class CompletionDomainHandler implements RequestHandler {
}
performance.logElapseTime(contributorTag);
}
-
performance.logElapseTime(COMPUTE_SUGGESTIONS_TAG);
// TODO (danrubel) if request is obsolete
@@ -139,8 +138,15 @@ class CompletionDomainHandler implements RequestHandler {
result = await server.getAnalysisResult(params.file);
if (result == null || !result.exists) {
- server.sendResponse(new Response.unknownSource(request));
- return;
+ if (server.onNoAnalysisCompletion != null) {
+ String completionId = (_nextCompletionId++).toString();
+ await server.onNoAnalysisCompletion(
+ request, this, params, performance, completionId);
+ return;
+ } else {
+ server.sendResponse(new Response.unknownSource(request));
+ return;
+ }
}
if (params.offset < 0 || params.offset > result.content.length) {
@@ -187,10 +193,10 @@ class CompletionDomainHandler implements RequestHandler {
params.offset,
performance,
server.ideOptions);
+
String completionId = (_nextCompletionId++).toString();
- _abortCurrentRequest();
- _currentRequest = completionRequest;
+ setNewRequest(completionRequest);
// initial response without results
server.sendResponse(new CompletionGetSuggestionsResult(completionId)
@@ -203,19 +209,27 @@ class CompletionDomainHandler implements RequestHandler {
sendCompletionNotification(completionId, result.replacementOffset,
result.replacementLength, result.suggestions);
performance.logElapseTime(SEND_NOTIFICATION_TAG);
-
performance.notificationCount = 1;
performance.logFirstNotificationComplete('notification 1 complete');
performance.suggestionCountFirst = result.suggestions.length;
performance.suggestionCountLast = result.suggestions.length;
performance.complete();
}).whenComplete(() {
- if (_currentRequest == completionRequest) {
- _currentRequest = null;
- }
+ ifMatchesRequestClear(completionRequest);
});
}
+ void setNewRequest(CompletionRequest completionRequest) {
+ _abortCurrentRequest();
+ _currentRequest = completionRequest;
+ }
+
+ void ifMatchesRequestClear(CompletionRequest completionRequest) {
+ if (_currentRequest == completionRequest) {
+ _currentRequest = null;
+ }
+ }
+
/**
* If tracking code completion performance over time, then
* record addition information about the request in the performance record.
« no previous file with comments | « pkg/analysis_server/lib/src/analysis_server.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698