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

Side by Side Diff: dart/pkg/analysis_server/lib/src/domain_completion.dart

Issue 931103003: Version 1.9.0-dev.8.2 (Closed) Base URL: http://dart.googlecode.com/svn/trunk/
Patch Set: Created 5 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library domain.completion; 5 library domain.completion;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/analysis_server.dart'; 9 import 'package:analysis_server/src/analysis_server.dart';
10 import 'package:analysis_server/src/constants.dart'; 10 import 'package:analysis_server/src/constants.dart';
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 manager.computeCache().then((bool success) { 151 manager.computeCache().then((bool success) {
152 performance.logElapseTime(computeTag); 152 performance.logElapseTime(computeTag);
153 performance.complete('priorityChanged caching: $success'); 153 performance.complete('priorityChanged caching: $success');
154 }); 154 });
155 } 155 }
156 } 156 }
157 157
158 /** 158 /**
159 * Process a `completion.getSuggestions` request. 159 * Process a `completion.getSuggestions` request.
160 */ 160 */
161 Response processRequest(Request request) { 161 Response processRequest(Request request, [CompletionManager manager]) {
162 performance = new CompletionPerformance(); 162 performance = new CompletionPerformance();
163 // extract params 163 // extract params
164 CompletionGetSuggestionsParams params = 164 CompletionGetSuggestionsParams params =
165 new CompletionGetSuggestionsParams.fromRequest(request); 165 new CompletionGetSuggestionsParams.fromRequest(request);
166 // schedule completion analysis 166 // schedule completion analysis
167 String completionId = (_nextCompletionId++).toString(); 167 String completionId = (_nextCompletionId++).toString();
168 AnalysisContext context = server.getAnalysisContext(params.file); 168 AnalysisContext context = server.getAnalysisContext(params.file);
169 Source source = server.getSource(params.file); 169 Source source = server.getSource(params.file);
170 recordRequest(performance, context, source, params.offset); 170 recordRequest(performance, context, source, params.offset);
171 CompletionManager manager = completionManagerFor(context, source); 171 if (manager == null) {
172 manager = completionManagerFor(context, source);
173 }
172 CompletionRequest completionRequest = 174 CompletionRequest completionRequest =
173 new CompletionRequest(params.offset, performance); 175 new CompletionRequest(params.offset, performance);
174 int notificationCount = 0; 176 int notificationCount = 0;
175 manager.results(completionRequest).listen((CompletionResult result) { 177 manager.results(completionRequest).listen((CompletionResult result) {
176 ++notificationCount; 178 ++notificationCount;
177 performance.logElapseTime("notification $notificationCount send", () { 179 performance.logElapseTime("notification $notificationCount send", () {
178 sendCompletionNotification( 180 sendCompletionNotification(
179 completionId, 181 completionId,
180 result.replacementOffset, 182 result.replacementOffset,
181 result.replacementLength, 183 result.replacementLength,
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 if (_sourcesChangedSubscription != null) { 264 if (_sourcesChangedSubscription != null) {
263 _sourcesChangedSubscription.cancel(); 265 _sourcesChangedSubscription.cancel();
264 _sourcesChangedSubscription = null; 266 _sourcesChangedSubscription = null;
265 } 267 }
266 if (_manager != null) { 268 if (_manager != null) {
267 _manager.dispose(); 269 _manager.dispose();
268 _manager = null; 270 _manager = null;
269 } 271 }
270 } 272 }
271 } 273 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698