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

Side by Side Diff: pkg/analysis_server/lib/src/operation/operation_analysis.dart

Issue 904093002: Discard pending notifications on the same source change. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
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 operation.analysis; 5 library operation.analysis;
6 6
7 import 'package:analysis_server/src/analysis_server.dart'; 7 import 'package:analysis_server/src/analysis_server.dart';
8 import 'package:analysis_server/src/computer/computer_highlights.dart'; 8 import 'package:analysis_server/src/computer/computer_highlights.dart';
9 import 'package:analysis_server/src/computer/computer_navigation.dart'; 9 import 'package:analysis_server/src/computer/computer_navigation.dart';
10 import 'package:analysis_server/src/computer/computer_occurrences.dart'; 10 import 'package:analysis_server/src/computer/computer_occurrences.dart';
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 options.cacheSize = cacheSize; 257 options.cacheSize = cacheSize;
258 context.analysisOptions = options; 258 context.analysisOptions = options;
259 } 259 }
260 260
261 void _updateIndex(AnalysisServer server, List<ChangeNotice> notices) { 261 void _updateIndex(AnalysisServer server, List<ChangeNotice> notices) {
262 Index index = server.index; 262 Index index = server.index;
263 if (index == null) { 263 if (index == null) {
264 return; 264 return;
265 } 265 }
266 for (ChangeNotice notice in notices) { 266 for (ChangeNotice notice in notices) {
267 String file = notice.source.fullName;
267 // Dart 268 // Dart
268 try { 269 try {
269 CompilationUnit dartUnit = notice.resolvedDartUnit; 270 CompilationUnit dartUnit = notice.resolvedDartUnit;
270 if (dartUnit != null) { 271 if (dartUnit != null) {
271 server.addOperation(new _DartIndexOperation(context, dartUnit)); 272 server.addOperation(new _DartIndexOperation(context, file, dartUnit));
272 } 273 }
273 } catch (exception, stackTrace) { 274 } catch (exception, stackTrace) {
274 server.sendServerErrorNotification(exception, stackTrace); 275 server.sendServerErrorNotification(exception, stackTrace);
275 } 276 }
276 // HTML 277 // HTML
277 try { 278 try {
278 HtmlUnit htmlUnit = notice.resolvedHtmlUnit; 279 HtmlUnit htmlUnit = notice.resolvedHtmlUnit;
279 if (htmlUnit != null) { 280 if (htmlUnit != null) {
280 server.addOperation(new _HtmlIndexOperation(context, htmlUnit)); 281 server.addOperation(new _HtmlIndexOperation(context, file, htmlUnit));
281 } 282 }
282 } catch (exception, stackTrace) { 283 } catch (exception, stackTrace) {
283 server.sendServerErrorNotification(exception, stackTrace); 284 server.sendServerErrorNotification(exception, stackTrace);
284 } 285 }
285 } 286 }
286 } 287 }
287 } 288 }
288 289
289 290
290 class _DartHighlightsOperation extends _DartNotificationOperation { 291 class _DartHighlightsOperation extends _DartNotificationOperation {
291 _DartHighlightsOperation(String file, CompilationUnit unit) 292 _DartHighlightsOperation(String file, CompilationUnit unit)
292 : super(file, unit); 293 : super(file, unit);
293 294
294 @override 295 @override
295 void perform(AnalysisServer server) { 296 void perform(AnalysisServer server) {
296 sendAnalysisNotificationHighlights(server, file, unit); 297 sendAnalysisNotificationHighlights(server, file, unit);
297 } 298 }
298 } 299 }
299 300
300 301
301 class _DartIndexOperation extends ServerOperation { 302 class _DartIndexOperation extends _SingleFileOperation {
302 final AnalysisContext context; 303 final AnalysisContext context;
303 final CompilationUnit unit; 304 final CompilationUnit unit;
304 305
305 _DartIndexOperation(this.context, this.unit); 306 _DartIndexOperation(this.context, String file, this.unit) : super(file);
306 307
307 @override 308 @override
308 ServerOperationPriority get priority { 309 ServerOperationPriority get priority {
309 return ServerOperationPriority.ANALYSIS_INDEX; 310 return ServerOperationPriority.ANALYSIS_INDEX;
310 } 311 }
311 312
312 @override 313 @override
313 void perform(AnalysisServer server) { 314 void perform(AnalysisServer server) {
314 Index index = server.index; 315 Index index = server.index;
315 index.indexUnit(context, unit); 316 index.indexUnit(context, unit);
316 } 317 }
317 } 318 }
318 319
319 320
320 class _DartNavigationOperation extends _DartNotificationOperation { 321 class _DartNavigationOperation extends _DartNotificationOperation {
321 _DartNavigationOperation(String file, CompilationUnit unit) 322 _DartNavigationOperation(String file, CompilationUnit unit)
322 : super(file, unit); 323 : super(file, unit);
323 324
324 @override 325 @override
325 void perform(AnalysisServer server) { 326 void perform(AnalysisServer server) {
326 sendAnalysisNotificationNavigation(server, file, unit); 327 sendAnalysisNotificationNavigation(server, file, unit);
327 } 328 }
328 } 329 }
329 330
330 331
331 abstract class _DartNotificationOperation extends ServerOperation { 332 abstract class _DartNotificationOperation extends _SingleFileOperation {
332 final String file;
333 final CompilationUnit unit; 333 final CompilationUnit unit;
334 334
335 _DartNotificationOperation(this.file, this.unit); 335 _DartNotificationOperation(String file, this.unit) : super(file);
336 336
337 @override 337 @override
338 ServerOperationPriority get priority { 338 ServerOperationPriority get priority {
339 return ServerOperationPriority.ANALYSIS_NOTIFICATION; 339 return ServerOperationPriority.ANALYSIS_NOTIFICATION;
340 } 340 }
341
342 @override
343 bool shouldBeDiscardedOnSourceChange(Source source) {
Brian Wilkerson 2015/02/06 19:24:17 This method duplicates the inherited method and co
344 return source.fullName == file;
345 }
341 } 346 }
342 347
343 348
344 class _DartOccurrencesOperation extends _DartNotificationOperation { 349 class _DartOccurrencesOperation extends _DartNotificationOperation {
345 _DartOccurrencesOperation(String file, CompilationUnit unit) 350 _DartOccurrencesOperation(String file, CompilationUnit unit)
346 : super(file, unit); 351 : super(file, unit);
347 352
348 @override 353 @override
349 void perform(AnalysisServer server) { 354 void perform(AnalysisServer server) {
350 sendAnalysisNotificationOccurrences(server, file, unit); 355 sendAnalysisNotificationOccurrences(server, file, unit);
(...skipping 18 matching lines...) Expand all
369 _DartOverridesOperation(String file, CompilationUnit unit) 374 _DartOverridesOperation(String file, CompilationUnit unit)
370 : super(file, unit); 375 : super(file, unit);
371 376
372 @override 377 @override
373 void perform(AnalysisServer server) { 378 void perform(AnalysisServer server) {
374 sendAnalysisNotificationOverrides(server, file, unit); 379 sendAnalysisNotificationOverrides(server, file, unit);
375 } 380 }
376 } 381 }
377 382
378 383
379 class _HtmlIndexOperation extends ServerOperation { 384 class _HtmlIndexOperation extends _SingleFileOperation {
380 final AnalysisContext context; 385 final AnalysisContext context;
381 final HtmlUnit unit; 386 final HtmlUnit unit;
382 387
383 _HtmlIndexOperation(this.context, this.unit); 388 _HtmlIndexOperation(this.context, String file, this.unit) : super(file);
384 389
385 @override 390 @override
386 ServerOperationPriority get priority { 391 ServerOperationPriority get priority {
387 return ServerOperationPriority.ANALYSIS_INDEX; 392 return ServerOperationPriority.ANALYSIS_INDEX;
388 } 393 }
389 394
390 @override 395 @override
391 void perform(AnalysisServer server) { 396 void perform(AnalysisServer server) {
392 Index index = server.index; 397 Index index = server.index;
393 index.indexHtmlUnit(context, unit); 398 index.indexHtmlUnit(context, unit);
394 } 399 }
395 } 400 }
396 401
397 402
398 class _NotificationErrorsOperation extends ServerOperation { 403 class _NotificationErrorsOperation extends _SingleFileOperation {
399 final String file;
400 final LineInfo lineInfo; 404 final LineInfo lineInfo;
401 final List<AnalysisError> errors; 405 final List<AnalysisError> errors;
402 406
403 _NotificationErrorsOperation(this.file, this.lineInfo, this.errors); 407 _NotificationErrorsOperation(String file, this.lineInfo, this.errors)
408 : super(file);
404 409
405 @override 410 @override
406 ServerOperationPriority get priority { 411 ServerOperationPriority get priority {
407 return ServerOperationPriority.ANALYSIS_NOTIFICATION; 412 return ServerOperationPriority.ANALYSIS_NOTIFICATION;
408 } 413 }
409 414
410 @override 415 @override
411 void perform(AnalysisServer server) { 416 void perform(AnalysisServer server) {
412 sendAnalysisNotificationErrors(server, file, lineInfo, errors); 417 sendAnalysisNotificationErrors(server, file, lineInfo, errors);
413 } 418 }
414 } 419 }
420
421
422 abstract class _SingleFileOperation extends SourceSensitiveOperation {
423 final String file;
424
425 _SingleFileOperation(this.file);
426
427 @override
428 bool shouldBeDiscardedOnSourceChange(Source source) {
429 return source.fullName == file;
430 }
431 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/operation/operation.dart ('k') | pkg/analysis_server/lib/src/operation/operation_queue.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698