always queue index update in dump mode when idea.schedule.cache.update.in.dumb.mode property is set

This commit is contained in:
Maxim.Mossienko
2014-03-24 12:17:22 +01:00
parent 87da48cb9c
commit 938485b780
@@ -36,8 +36,6 @@ import com.intellij.openapi.startup.StartupManager;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.vfs.*;
import com.intellij.openapi.vfs.ex.VirtualFileManagerAdapter;
import com.intellij.openapi.vfs.newvfs.BulkFileListener;
import com.intellij.openapi.vfs.newvfs.events.VFileEvent;
import com.intellij.openapi.vfs.pointers.VirtualFilePointer;
import com.intellij.openapi.vfs.pointers.VirtualFilePointerListener;
import com.intellij.util.SystemProperties;
@@ -61,7 +59,6 @@ public class ProjectRootManagerComponent extends ProjectRootManagerImpl {
"idea.schedule.cache.update.in.dumb.mode", true);
private boolean myPointerChangesDetected = false;
private int myInsideRefresh = 0;
private boolean myLargeVfsUpdateDetected;
private final BatchUpdateListener myHandler;
private final MessageBusConnection myConnection;
@@ -88,22 +85,10 @@ public class ProjectRootManagerComponent extends ProjectRootManagerImpl {
}
});
myConnection.subscribe(VirtualFileManager.VFS_CHANGES, new BulkFileListener.Adapter() {
@Override
public void before(@NotNull List<? extends VFileEvent> events) {
myLargeVfsUpdateDetected |= DirectoryIndexImpl.isLargeVfsChange(events);
}
});
VirtualFileManager.getInstance().addVirtualFileManagerListener(new VirtualFileManagerAdapter() {
@Override
public void beforeRefreshStart(boolean asynchronous) {
myLargeVfsUpdateDetected = false;
}
@Override
public void afterRefreshFinish(boolean asynchronous) {
doUpdateOnRefresh(myLargeVfsUpdateDetected);
doUpdateOnRefresh();
}
}, project);
@@ -185,7 +170,7 @@ public class ProjectRootManagerComponent extends ProjectRootManagerImpl {
getBatchSession(fileTypes).rootsChanged();
}
private void doUpdateOnRefresh(boolean largeChange) {
private void doUpdateOnRefresh() {
if (ApplicationManager.getApplication().isUnitTestMode() && (!myStartupActivityPerformed || myProject.isDisposed())) {
return; // in test mode suppress addition to a queue unless project is properly initialized
}
@@ -193,7 +178,7 @@ public class ProjectRootManagerComponent extends ProjectRootManagerImpl {
return; // default project
}
DumbServiceImpl dumbService = DumbServiceImpl.getInstance(myProject);
if (largeChange && ourScheduleCacheUpdateInDumbMode) {
if (ourScheduleCacheUpdateInDumbMode) {
dumbService.queueCacheUpdateInDumbMode(myRefreshCacheUpdaters);
}
else {