import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.roots.ExcludedFileIndex;
+import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.impl.PsiManagerImpl;
import com.intellij.psi.impl.compiled.ClsFileImpl;
@Override
protected PsiFile createFile(final Project project, final VirtualFile vFile, final FileType fileType) {
- final ExcludedFileIndex fileIndex = ServiceManager.getService(project, ExcludedFileIndex.class);
+ final FileIndexFacade fileIndex = ServiceManager.getService(project, FileIndexFacade.class);
if (fileIndex.isInLibraryClasses(vFile) || !fileIndex.isInSource(vFile)) {
String name = vFile.getName();
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.DumbService;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.roots.ExcludedFileIndex;
+import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.util.IconLoader;
import com.intellij.openapi.util.Iconable;
import com.intellij.openapi.util.Key;
public static boolean isExcluded(final VirtualFile vFile, final Project project) {
return vFile != null
- && ServiceManager.getService(project, ExcludedFileIndex.class).isInSource(vFile)
+ && ServiceManager.getService(project, FileIndexFacade.class).isInSource(vFile)
&& CompilerConfiguration.getInstance(project).isExcludedFromCompilation(vFile);
}
*/
package com.intellij.psi.impl;
+import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.progress.ProgressManager;
-import com.intellij.openapi.roots.ProjectFileIndex;
-import com.intellij.openapi.roots.ProjectRootManager;
+import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.util.*;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.*;
return compareClassSeqNumber(aClass, (PsiClass)another);
}
- final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(aClass.getProject()).getFileIndex();
+ final FileIndexFacade fileIndex = ServiceManager.getService(file1.getProject(), FileIndexFacade.class);
final VirtualFile vfile1 = file1.getViewProvider().getVirtualFile();
final VirtualFile vfile2 = file2.getViewProvider().getVirtualFile();
return (fileIndex.isInSource(vfile1) || fileIndex.isInLibraryClasses(vfile1)) &&
/**
* @author yole
*/
-public abstract class ExcludedFileIndex {
+public abstract class FileIndexFacade {
protected final Project myProject;
- protected ExcludedFileIndex(final Project project) {
+ protected FileIndexFacade(final Project project) {
myProject = project;
}
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.progress.ProgressIndicatorProvider;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.roots.ExcludedFileIndex;
+import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.Key;
import com.intellij.openapi.vfs.VirtualFile;
private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.PsiManagerImpl");
private final Project myProject;
- private final ExcludedFileIndex myExcludedFileIndex;
+ private final FileIndexFacade myExcludedFileIndex;
private final MessageBus myMessageBus;
private final FileManager myFileManager;
public PsiManagerImpl(Project project,
FileDocumentManager fileDocumentManager,
PsiBuilderFactory psiBuilderFactory,
- ExcludedFileIndex excludedFileIndex,
+ FileIndexFacade excludedFileIndex,
MessageBus messageBus) {
myProject = project;
myExcludedFileIndex = excludedFileIndex;
import com.intellij.openapi.fileTypes.LanguageFileType;
import com.intellij.openapi.project.DumbService;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.roots.ExcludedFileIndex;
+import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.*;
private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.file.impl.FileManagerImpl");
private final PsiManagerImpl myManager;
- private final ExcludedFileIndex myFileIndex;
+ private final FileIndexFacade myFileIndex;
private final ConcurrentMap<VirtualFile, PsiDirectory> myVFileToPsiDirMap = new ConcurrentSoftValueHashMap<VirtualFile, PsiDirectory>();
private final ConcurrentWeakValueHashMap<VirtualFile, FileViewProvider> myVFileToViewProviderMap = new ConcurrentWeakValueHashMap<VirtualFile, FileViewProvider>();
public FileManagerImpl(PsiManagerImpl manager,
FileDocumentManager fileDocumentManager,
- ExcludedFileIndex fileIndex) {
+ FileIndexFacade fileIndex) {
myManager = manager;
myFileIndex = fileIndex;
myConnection = manager.getProject().getMessageBus().connect();
import com.intellij.openapi.module.ModuleUtil;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ex.ProjectEx;
-import com.intellij.openapi.roots.ExcludedFileIndex;
+import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.roots.ModuleRootManager;
import com.intellij.openapi.roots.ProjectRootManager;
import com.intellij.openapi.util.Computable;
@Nullable
public VirtualFile getVcsRootFor(final VirtualFile file) {
- if (myBaseDir != null && PeriodicalTasksCloser.getInstance().safeGetService(myProject, ExcludedFileIndex.class)
+ if (myBaseDir != null && PeriodicalTasksCloser.getInstance().safeGetService(myProject, FileIndexFacade.class)
.isValidAncestor(myBaseDir, file)) {
return myBaseDir;
}
package com.intellij.openapi.vcs.impl;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.roots.ExcludedFileIndex;
+import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.roots.ProjectRootManager;
import com.intellij.openapi.roots.impl.DirectoryIndex;
import com.intellij.openapi.vfs.VirtualFile;
/**
* @author yole
*/
-public class ProjectExcludedFileIndex extends ExcludedFileIndex {
+public class ProjectFileIndexFacade extends FileIndexFacade {
private final ProjectRootManager myRootManager;
private final DirectoryIndex myDirectoryIndex;
- public ProjectExcludedFileIndex(final Project project, final ProjectRootManager rootManager, final DirectoryIndex directoryIndex) {
+ public ProjectFileIndexFacade(final Project project, final ProjectRootManager rootManager, final DirectoryIndex directoryIndex) {
super(project);
myRootManager = rootManager;
myDirectoryIndex = directoryIndex;
<exportable serviceInterface="com.intellij.openapi.projectRoots.ProjectJdkTable"/>
- <projectService serviceInterface="com.intellij.openapi.roots.ExcludedFileIndex"
- serviceImplementation="com.intellij.openapi.vcs.impl.ProjectExcludedFileIndex"/>
+ <projectService serviceInterface="com.intellij.openapi.roots.FileIndexFacade"
+ serviceImplementation="com.intellij.openapi.vcs.impl.ProjectFileIndexFacade"/>
<projectService serviceInterface="com.intellij.openapi.vcs.impl.DefaultVcsRootPolicy"
serviceImplementation="com.intellij.openapi.vcs.impl.ModuleDefaultVcsRootPolicy"/>
<applicationService serviceInterface="com.intellij.ui.mac.MacMessages"
serviceImplementation="com.intellij.ui.mac.MacMessagesImpl"/>
- <projectService serviceInterface="com.intellij.openapi.roots.ExcludedFileIndex"
- serviceImplementation="com.intellij.openapi.vcs.impl.DefaultExcludedFileIndex"/>
+ <projectService serviceInterface="com.intellij.openapi.roots.FileIndexFacade"
+ serviceImplementation="com.intellij.openapi.vcs.impl.DefaultFileIndexFacade"/>
<projectService serviceInterface="com.intellij.openapi.vcs.impl.DefaultVcsRootPolicy"
serviceImplementation="com.intellij.openapi.vcs.impl.BasicDefaultVcsRootPolicy"/>
import com.intellij.lifecycle.PeriodicalTasksCloser;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ContentIterator;
-import com.intellij.openapi.roots.ExcludedFileIndex;
+import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.roots.impl.FileIndexImplUtil;
import com.intellij.openapi.util.Ref;
import com.intellij.openapi.vcs.*;
change.set(changeListManager.getChange(file));
}
else {
- final ExcludedFileIndex index = PeriodicalTasksCloser.getInstance().safeGetService(project, ExcludedFileIndex.class);
+ final FileIndexFacade index = PeriodicalTasksCloser.getInstance().safeGetService(project, FileIndexFacade.class);
final VirtualFileFilter filter = new VirtualFileFilter() {
public boolean accept(final VirtualFile file) {
return (! index.isExcludedFile(file));
import com.intellij.lifecycle.PeriodicalTasksCloser;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.roots.ExcludedFileIndex;
+import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.vcs.history.VcsRevisionNumber;
import com.intellij.openapi.vfs.VirtualFile;
createReadChangesCache();
final Collection<Change> result = new ArrayList<Change>();
myChangesBeforeUpdate = new OpenTHashSet<Change>(myChanges);
- final ExcludedFileIndex fileIndex = PeriodicalTasksCloser.getInstance().safeGetService(project, ExcludedFileIndex.class);
+ final FileIndexFacade fileIndex = PeriodicalTasksCloser.getInstance().safeGetService(project, FileIndexFacade.class);
for (Change oldBoy : myChangesBeforeUpdate) {
final ContentRevision before = oldBoy.getBeforeRevision();
final ContentRevision after = oldBoy.getAfterRevision();
return result;
}
- private static boolean isIgnoredChange(final Change change, final ExcludedFileIndex fileIndex) {
+ private static boolean isIgnoredChange(final Change change, final FileIndexFacade fileIndex) {
boolean beforeRevIgnored = change.getBeforeRevision() == null || isIgnoredRevision(change.getBeforeRevision(), fileIndex);
boolean afterRevIgnored = change.getAfterRevision() == null || isIgnoredRevision(change.getAfterRevision(), fileIndex);
return beforeRevIgnored && afterRevIgnored;
}
- private static boolean isIgnoredRevision(final ContentRevision revision, final ExcludedFileIndex fileIndex) {
+ private static boolean isIgnoredRevision(final ContentRevision revision, final FileIndexFacade fileIndex) {
VirtualFile vFile = revision.getFile().getVirtualFile();
return vFile != null && fileIndex.isExcludedFile(vFile);
}
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileTypes.FileTypeManager;
-import com.intellij.openapi.roots.ExcludedFileIndex;
+import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.util.Getter;
import com.intellij.openapi.vcs.FilePath;
import com.intellij.openapi.vcs.FilePathImpl;
private VcsDirtyScope myScope;
private FoldersCutDownWorker myFoldersCutDownWorker;
private final IgnoredFilesComponent myIgnoredFilesComponent;
- private final ExcludedFileIndex myIndex;
+ private final FileIndexFacade myIndex;
private final ChangeListManagerGate myGate;
UpdatingChangeListBuilder(final ChangeListWorker changeListWorker,
myDisposedGetter = disposedGetter;
myIgnoredFilesComponent = ignoredFilesComponent;
myGate = gate;
- myIndex = PeriodicalTasksCloser.getInstance().safeGetService(changeListWorker.getProject(), ExcludedFileIndex.class);
+ myIndex = PeriodicalTasksCloser.getInstance().safeGetService(changeListWorker.getProject(), FileIndexFacade.class);
}
private void checkIfDisposed() {
import com.intellij.openapi.components.StorageScheme;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ex.ProjectEx;
-import com.intellij.openapi.roots.ExcludedFileIndex;
+import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.util.Computable;
import com.intellij.openapi.vcs.AbstractVcs;
import com.intellij.openapi.vcs.FilePath;
public class VcsGuess {
private final Project myProject;
private final ProjectLevelVcsManagerImpl myVcsManager;
- private final ExcludedFileIndex myExcludedFileIndex;
+ private final FileIndexFacade myExcludedFileIndex;
VcsGuess(final Project project) {
myProject = project;
myVcsManager = (ProjectLevelVcsManagerImpl) ProjectLevelVcsManagerImpl.getInstance(myProject);
- myExcludedFileIndex = PeriodicalTasksCloser.getInstance().safeGetService(myProject, ExcludedFileIndex.class);
+ myExcludedFileIndex = PeriodicalTasksCloser.getInstance().safeGetService(myProject, FileIndexFacade.class);
}
@Nullable
package com.intellij.openapi.vcs.impl;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.roots.ExcludedFileIndex;
+import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.vfs.VfsUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.platform.ProjectBaseDirectory;
/**
* @author yole
*/
-public class DefaultExcludedFileIndex extends ExcludedFileIndex {
+public class DefaultFileIndexFacade extends FileIndexFacade {
private final Project myProject;
private final VirtualFile myBaseDir;
- public DefaultExcludedFileIndex(final Project project) {
+ public DefaultFileIndexFacade(final Project project) {
super(project);
myProject = project;
myBaseDir = project.getBaseDir();
import com.intellij.openapi.project.DumbAwareRunnable;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ex.ProjectEx;
-import com.intellij.openapi.roots.ExcludedFileIndex;
+import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.startup.StartupManager;
import com.intellij.openapi.util.*;
import com.intellij.openapi.util.io.FileUtil;
private final ContentRevisionCache myContentRevisionCache;
private MessageBusConnection myConnect;
private VcsListener myVcsListener;
- private final ExcludedFileIndex myExcludedIndex;
+ private final FileIndexFacade myExcludedIndex;
- public ProjectLevelVcsManagerImpl(Project project, final FileStatusManager manager, MessageBus messageBus, final ExcludedFileIndex excludedFileIndex) {
+ public ProjectLevelVcsManagerImpl(Project project, final FileStatusManager manager, MessageBus messageBus, final FileIndexFacade excludedFileIndex) {
myProject = project;
myMessageBus = messageBus;
mySerialization = new ProjectLevelVcsManagerSerialization();
import com.intellij.lifecycle.PeriodicalTasksCloser;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.roots.ExcludedFileIndex;
+import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.vcs.*;
import com.intellij.openapi.vfs.VirtualFile;
public class VcsRootIterator {
// folder path to files to be excluded
private final Map<String, MyRootFilter> myOtherVcsFolders;
- private final ExcludedFileIndex myExcludedFileIndex;
+ private final FileIndexFacade myExcludedFileIndex;
public VcsRootIterator(final Project project, final AbstractVcs vcs) {
final ProjectLevelVcsManager plVcsManager = ProjectLevelVcsManager.getInstance(project);
myOtherVcsFolders = new HashMap<String, MyRootFilter>();
- myExcludedFileIndex = PeriodicalTasksCloser.getInstance().safeGetService(project, ExcludedFileIndex.class);
+ myExcludedFileIndex = PeriodicalTasksCloser.getInstance().safeGetService(project, FileIndexFacade.class);
final VcsRoot[] allRoots = plVcsManager.getAllVcsRoots();
final VirtualFile[] roots = plVcsManager.getRootsUnderVcs(vcs);
@Nullable private final PairProcessor<VirtualFile, VirtualFile[]> myDirectoryFilter;
private final LinkedList<VirtualFile> myQueue;
private final MyRootFilter myRootPresentFilter;
- private final ExcludedFileIndex myExcludedFileIndex;
+ private final FileIndexFacade myExcludedFileIndex;
private MyRootIterator(final Project project, final VirtualFile root, final Processor<FilePath> processor,
@Nullable PairProcessor<VirtualFile, VirtualFile[]> directoryFilter) {
final ProjectLevelVcsManager plVcsManager = ProjectLevelVcsManager.getInstance(project);
final AbstractVcs vcs = plVcsManager.getVcsFor(root);
myRootPresentFilter = (vcs == null) ? null : new MyRootFilter(root, vcs.getName());
- myExcludedFileIndex = PeriodicalTasksCloser.getInstance().safeGetService(project, ExcludedFileIndex.class);
+ myExcludedFileIndex = PeriodicalTasksCloser.getInstance().safeGetService(project, FileIndexFacade.class);
myQueue = new LinkedList<VirtualFile>();
myQueue.add(root);
import com.intellij.lifecycle.PeriodicalTasksCloser;
import com.intellij.openapi.diff.impl.patch.formove.FilePathComparator;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.roots.ExcludedFileIndex;
+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;
while(i < result.size()) {
final VirtualFile previous = result.get(i - 1);
final VirtualFile current = result.get(i);
- if (PeriodicalTasksCloser.getInstance().safeGetService(myProject, ExcludedFileIndex.class).isValidAncestor(previous, current)) {
-// if (ExcludedFileIndex.getInstance(myProject).isValidAncestor(previous, current) && vcs.isVersionedDirectory(previous)) {
+ if (PeriodicalTasksCloser.getInstance().safeGetService(myProject, FileIndexFacade.class).isValidAncestor(previous, current)) {
+// if (FileIndexFacade.getInstance(myProject).isValidAncestor(previous, current) && vcs.isVersionedDirectory(previous)) {
result.remove(i);
}
else {
final VirtualFile module = iterator.next();
boolean included = false;
for (VirtualFile root : result) {
- if (PeriodicalTasksCloser.getInstance().safeGetService(myProject, ExcludedFileIndex.class).isValidAncestor(root, module)) {
+ if (PeriodicalTasksCloser.getInstance().safeGetService(myProject, FileIndexFacade.class).isValidAncestor(root, module)) {
included = true;
break;
}
import com.intellij.lifecycle.PeriodicalTasksCloser;
import com.intellij.openapi.progress.ProgressIndicator;
-import com.intellij.openapi.roots.ExcludedFileIndex;
+import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.vcs.changes.ChangeListManager;
import com.intellij.openapi.vfs.VirtualFile;
import org.tmatesoft.svn.core.SVNCancelException;
public class StatusWalkerPartnerImpl implements StatusWalkerPartner {
private final SvnVcs myVcs;
private final ChangeListManager myClManager;
- private final ExcludedFileIndex myExcludedFileIndex;
+ private final FileIndexFacade myExcludedFileIndex;
private final ProgressIndicator myIndicator;
private ISVNStatusFileProvider myFileProvider;
public StatusWalkerPartnerImpl(final SvnVcs vcs, final ProgressIndicator pi) {
myVcs = vcs;
myClManager = ChangeListManager.getInstance(myVcs.getProject());
- myExcludedFileIndex = PeriodicalTasksCloser.getInstance().safeGetService(myVcs.getProject(), ExcludedFileIndex.class);
+ myExcludedFileIndex = PeriodicalTasksCloser.getInstance().safeGetService(myVcs.getProject(), FileIndexFacade.class);
myIndicator = pi;
}
import com.intellij.lifecycle.PeriodicalTasksCloser;
import com.intellij.openapi.project.Project;
+import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.vcs.changes.ChangeListManager;
-import com.intellij.openapi.roots.ExcludedFileIndex;
import com.intellij.openapi.vfs.VirtualFile;
import org.tmatesoft.svn.core.SVNDepth;
import org.tmatesoft.svn.core.SVNException;
public static class Filter {
private final Project myProject;
- private final ExcludedFileIndex myIndex;
+ private final FileIndexFacade myIndex;
private final ChangeListManager myClManager;
public Filter(final Project project) {
myProject = project;
if (! project.isDefault()) {
- myIndex = PeriodicalTasksCloser.getInstance().safeGetService(project, ExcludedFileIndex.class);
+ myIndex = PeriodicalTasksCloser.getInstance().safeGetService(project, FileIndexFacade.class);
myClManager = ChangeListManager.getInstance(project);
} else {
myIndex = null;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.progress.Task;
import com.intellij.openapi.project.Project;
+import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.util.Ref;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vcs.CheckoutProvider;
import com.intellij.openapi.vcs.VcsConfiguration;
import com.intellij.openapi.vcs.ex.ProjectLevelVcsManagerEx;
-import com.intellij.openapi.roots.ExcludedFileIndex;
import com.intellij.openapi.vcs.update.RefreshVFsSynchronously;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
final VirtualFile targetVf = SvnUtil.getVirtualFile(targetPath);
if (targetVf == null) {
errorMessage.set("Can not find file: " + targetPath);
- } else if (project.isDefault() || !PeriodicalTasksCloser.getInstance().safeGetService(project, ExcludedFileIndex.class)
+ } else if (project.isDefault() || !PeriodicalTasksCloser.getInstance().safeGetService(project, FileIndexFacade.class)
.isInContent(targetVf)) {
// do not pay attention to ignored/excluded settings
client.doImport(target, url, message, null, !includeIgnored, false, depth);
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.util.Pair;
-import com.intellij.openapi.roots.ExcludedFileIndex;
+import com.intellij.openapi.roots.FileIndexFacade;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.PlatformIcons;
import com.intellij.util.ui.UIUtil;
private boolean underProject(final File file) {
final VirtualFile vf = SvnUtil.getVirtualFile(file.getAbsolutePath());
- return (vf == null) || PeriodicalTasksCloser.getInstance().safeGetService(myProject, ExcludedFileIndex.class).isInContent(vf);
+ return (vf == null) || PeriodicalTasksCloser.getInstance().safeGetService(myProject, FileIndexFacade.class).isInContent(vf);
}
public WorkingCopyInfo getSelectedWc() {
serviceImplementation="com.intellij.openapi.vcs.changes.ui.ChangesModuleGroupingPolicyFactory"/>
<projectService serviceInterface="com.intellij.openapi.vcs.impl.DefaultVcsRootPolicy"
serviceImplementation="com.intellij.openapi.vcs.impl.ModuleDefaultVcsRootPolicy"/>
- <projectService serviceInterface="com.intellij.openapi.roots.ExcludedFileIndex"
- serviceImplementation="com.intellij.openapi.vcs.impl.ProjectExcludedFileIndex"/>
+ <projectService serviceInterface="com.intellij.openapi.roots.FileIndexFacade"
+ serviceImplementation="com.intellij.openapi.vcs.impl.ProjectFileIndexFacade"/>
<projectService serviceInterface="com.intellij.openapi.vcs.impl.VcsPathPresenter"
serviceImplementation="com.intellij.openapi.vcs.impl.ModuleVcsPathPresenter"/>