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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: pkg/analysis_server/lib/src/operation/operation_analysis.dart
diff --git a/pkg/analysis_server/lib/src/operation/operation_analysis.dart b/pkg/analysis_server/lib/src/operation/operation_analysis.dart
index ec612a5568f36c2b2ee2d7511ffb7589c1525cd4..95e8f4d215666d77d5cdb11d2a40c3265cc72090 100644
--- a/pkg/analysis_server/lib/src/operation/operation_analysis.dart
+++ b/pkg/analysis_server/lib/src/operation/operation_analysis.dart
@@ -264,11 +264,12 @@ class PerformAnalysisOperation extends ServerOperation {
return;
}
for (ChangeNotice notice in notices) {
+ String file = notice.source.fullName;
// Dart
try {
CompilationUnit dartUnit = notice.resolvedDartUnit;
if (dartUnit != null) {
- server.addOperation(new _DartIndexOperation(context, dartUnit));
+ server.addOperation(new _DartIndexOperation(context, file, dartUnit));
}
} catch (exception, stackTrace) {
server.sendServerErrorNotification(exception, stackTrace);
@@ -277,7 +278,7 @@ class PerformAnalysisOperation extends ServerOperation {
try {
HtmlUnit htmlUnit = notice.resolvedHtmlUnit;
if (htmlUnit != null) {
- server.addOperation(new _HtmlIndexOperation(context, htmlUnit));
+ server.addOperation(new _HtmlIndexOperation(context, file, htmlUnit));
}
} catch (exception, stackTrace) {
server.sendServerErrorNotification(exception, stackTrace);
@@ -298,11 +299,11 @@ class _DartHighlightsOperation extends _DartNotificationOperation {
}
-class _DartIndexOperation extends ServerOperation {
+class _DartIndexOperation extends _SingleFileOperation {
final AnalysisContext context;
final CompilationUnit unit;
- _DartIndexOperation(this.context, this.unit);
+ _DartIndexOperation(this.context, String file, this.unit) : super(file);
@override
ServerOperationPriority get priority {
@@ -328,16 +329,20 @@ class _DartNavigationOperation extends _DartNotificationOperation {
}
-abstract class _DartNotificationOperation extends ServerOperation {
- final String file;
+abstract class _DartNotificationOperation extends _SingleFileOperation {
final CompilationUnit unit;
- _DartNotificationOperation(this.file, this.unit);
+ _DartNotificationOperation(String file, this.unit) : super(file);
@override
ServerOperationPriority get priority {
return ServerOperationPriority.ANALYSIS_NOTIFICATION;
}
+
+ @override
+ bool shouldBeDiscardedOnSourceChange(Source source) {
Brian Wilkerson 2015/02/06 19:24:17 This method duplicates the inherited method and co
+ return source.fullName == file;
+ }
}
@@ -376,11 +381,11 @@ class _DartOverridesOperation extends _DartNotificationOperation {
}
-class _HtmlIndexOperation extends ServerOperation {
+class _HtmlIndexOperation extends _SingleFileOperation {
final AnalysisContext context;
final HtmlUnit unit;
- _HtmlIndexOperation(this.context, this.unit);
+ _HtmlIndexOperation(this.context, String file, this.unit) : super(file);
@override
ServerOperationPriority get priority {
@@ -395,12 +400,12 @@ class _HtmlIndexOperation extends ServerOperation {
}
-class _NotificationErrorsOperation extends ServerOperation {
- final String file;
+class _NotificationErrorsOperation extends _SingleFileOperation {
final LineInfo lineInfo;
final List<AnalysisError> errors;
- _NotificationErrorsOperation(this.file, this.lineInfo, this.errors);
+ _NotificationErrorsOperation(String file, this.lineInfo, this.errors)
+ : super(file);
@override
ServerOperationPriority get priority {
@@ -412,3 +417,15 @@ class _NotificationErrorsOperation extends ServerOperation {
sendAnalysisNotificationErrors(server, file, lineInfo, errors);
}
}
+
+
+abstract class _SingleFileOperation extends SourceSensitiveOperation {
+ final String file;
+
+ _SingleFileOperation(this.file);
+
+ @override
+ bool shouldBeDiscardedOnSourceChange(Source source) {
+ return source.fullName == file;
+ }
+}
« 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