vcs: cleanup: lambdify, simplify

This commit is contained in:
Kirill Likhodedov
2017-01-24 18:22:17 +03:00
parent 025534c335
commit ba5c02569c
2 changed files with 26 additions and 33 deletions
@@ -23,7 +23,7 @@ import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.vcs.AbstractVcs;
import com.intellij.openapi.vcs.VcsDirectoryMapping;
import com.intellij.openapi.vcs.impl.DefaultVcsRootPolicy;
import com.intellij.openapi.vfs.VfsUtil;
import com.intellij.openapi.vfs.VfsUtilCore;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NotNull;
@@ -53,26 +53,22 @@ public class MappingsToRoots {
if (! vcs.allowsNestedRoots()) {
final FileIndexFacade facade = PeriodicalTasksCloser.getInstance().safeGetService(myProject, FileIndexFacade.class);
final List<VirtualFile> finalResult = result;
ApplicationManager.getApplication().runReadAction(new Runnable() {
@Override
public void run() {
int i=1;
while(i < finalResult.size()) {
final VirtualFile previous = finalResult.get(i - 1);
final VirtualFile current = finalResult.get(i);
if (facade.isValidAncestor(previous, current)) {
// if (FileIndexFacade.getInstance(myProject).isValidAncestor(previous, current) && vcs.isVersionedDirectory(previous)) {
finalResult.remove(i);
}
else {
i++;
}
ApplicationManager.getApplication().runReadAction(() -> {
int i=1;
while(i < finalResult.size()) {
final VirtualFile previous = finalResult.get(i - 1);
final VirtualFile current = finalResult.get(i);
if (facade.isValidAncestor(previous, current)) {
finalResult.remove(i);
}
else {
i++;
}
}
});
}
result.removeIf(file -> !file.isDirectory());
return VfsUtil.toVirtualFileArray(result);
return VfsUtilCore.toVirtualFileArray(result);
}
// not only set mappings, but include all modules inside: modules might have different settings
@@ -93,24 +89,21 @@ public class MappingsToRoots {
Collections.sort(result, FilePathComparator.getInstance());
if (addInnerModules) {
final FileIndexFacade facade = PeriodicalTasksCloser.getInstance().safeGetService(myProject, FileIndexFacade.class);
final DefaultVcsRootPolicy defaultVcsRootPolicy = DefaultVcsRootPolicy.getInstance(myProject);
final List<VirtualFile> modules = defaultVcsRootPolicy.getDefaultVcsRoots(myMappings, vcsName);
ApplicationManager.getApplication().runReadAction(new Runnable() {
public void run() {
final Iterator<VirtualFile> iterator = modules.iterator();
while (iterator.hasNext()) {
final VirtualFile module = iterator.next();
boolean included = false;
for (VirtualFile root : result) {
if (facade.isValidAncestor(root, module)) {
included = true;
break;
}
}
if (! included) {
iterator.remove();
final List<VirtualFile> modules = DefaultVcsRootPolicy.getInstance(myProject).getDefaultVcsRoots(myMappings, vcsName);
ApplicationManager.getApplication().runReadAction(() -> {
Iterator<VirtualFile> iterator = modules.iterator();
while (iterator.hasNext()) {
final VirtualFile module = iterator.next();
boolean included = false;
for (VirtualFile root : result) {
if (facade.isValidAncestor(root, module)) {
included = true;
break;
}
}
if (! included) {
iterator.remove();
}
}
});
result.addAll(modules);
@@ -43,7 +43,7 @@ import java.util.*;
public class NewMappings {
public static Comparator<VcsDirectoryMapping> MAPPINGS_COMPARATOR = Comparator.comparing(VcsDirectoryMapping::getDirectory);
public static final Comparator<VcsDirectoryMapping> MAPPINGS_COMPARATOR = Comparator.comparing(VcsDirectoryMapping::getDirectory);
private final static Logger LOG = Logger.getInstance("#com.intellij.openapi.vcs.impl.projectlevelman.NewMappings");
private final Object myLock;