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

Unified Diff: editor/tools/plugins/com.google.dart.tools.core/src/com/google/dart/tools/core/internal/analysis/model/WorkspaceDeltaProcessor.java

Issue 252703004: Rollback CL 240003005, causes deleting contexts after marker operations. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 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
Index: editor/tools/plugins/com.google.dart.tools.core/src/com/google/dart/tools/core/internal/analysis/model/WorkspaceDeltaProcessor.java
diff --git a/editor/tools/plugins/com.google.dart.tools.core/src/com/google/dart/tools/core/internal/analysis/model/WorkspaceDeltaProcessor.java b/editor/tools/plugins/com.google.dart.tools.core/src/com/google/dart/tools/core/internal/analysis/model/WorkspaceDeltaProcessor.java
index fe82c5e97c1bf0a5958447eb6fe2327355ddbada..87d0305a0ab7fdcfcd01e19e2ac77f2c0ce08544 100644
--- a/editor/tools/plugins/com.google.dart.tools.core/src/com/google/dart/tools/core/internal/analysis/model/WorkspaceDeltaProcessor.java
+++ b/editor/tools/plugins/com.google.dart.tools.core/src/com/google/dart/tools/core/internal/analysis/model/WorkspaceDeltaProcessor.java
@@ -5,6 +5,10 @@ import com.google.dart.tools.core.DartCore;
import com.google.dart.tools.core.analysis.model.Project;
import com.google.dart.tools.core.analysis.model.ProjectManager;
import com.google.dart.tools.core.internal.builder.AnalysisWorker;
+import com.google.dart.tools.core.internal.builder.DeltaProcessor;
+import com.google.dart.tools.core.internal.builder.IgnoreResourceFilter;
+import com.google.dart.tools.core.internal.builder.IndexUpdater;
+import com.google.dart.tools.core.internal.builder.ProjectUpdater;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
@@ -56,15 +60,22 @@ public class WorkspaceDeltaProcessor implements IResourceChangeListener {
return true;
} else if (res.getType() == IResource.FOLDER) {
- if (res.getName().equals(DartCore.PACKAGES_DIRECTORY_NAME)
- && (res.getParent().findMember(DartCore.PUBSPEC_FILE_NAME) != null)) {
+ if (res.getName().equals(DartCore.PACKAGES_DIRECTORY_NAME)) {
// The builder is not notified about changes in symlinked folders (e.g. packages)
- // The context needs the delta of changes, what has to be removed and also added.
- // Since at this point there is no knowledge of previous package details, do a
- // reanalyze for the context
+ // thus we traverse those changes here using the same mechanism as the builder
Project project = manager.getProject(res.getProject());
- project.discardContextsIn(res.getParent());
+ ProjectUpdater updater = new ProjectUpdater();
+ IndexUpdater indexUpdater = new IndexUpdater(manager.getIndex());
+ DeltaProcessor processor = new DeltaProcessor(project);
+ IgnoreResourceFilter filter = new IgnoreResourceFilter();
+ filter.addDeltaListener(updater);
+ filter.addDeltaListener(indexUpdater);
+ processor.addDeltaListener(filter);
+ processor.traverse(delta);
+ updater.applyChanges();
+ AnalysisContext context = manager.getContext(res);
+ startBackgroundAnalysis(project, context);
return false;
}
return true;
« no previous file with comments | « no previous file | editor/tools/plugins/com.google.dart.tools.core_test/src/com/google/dart/tools/core/internal/analysis/model/WorkspaceDeltaProcessorTest.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698