private DirectoryInfo getInfoForDirectory(@NotNull VirtualFile file) {
   // if ((! myProject.isOpen()) || myProject.isDisposed()) {
   //  if (StartupManagerEx.getInstanceEx(myProject).startupActivityPassed()) {
   //    throw new ProcessCanceledException();
   //  }
   // }
   return myDirectoryIndex.getInfoForDirectory(file);
 }
  public boolean isIgnored(@NotNull VirtualFile file) {
    if (myFileTypeRegistry.isFileIgnored(file)) return true;
    if (myFileExclusionManager != null && myFileExclusionManager.isExcluded(file)) return true;
    VirtualFile dir = file.isDirectory() ? file : file.getParent();
    if (dir == null) return false;

    DirectoryInfo info = getInfoForDirectory(dir);
    if (info != null) return false;
    if (myDirectoryIndex.isProjectExcludeRoot(dir)) return true;

    VirtualFile parent = dir.getParent();
    while (true) {
      if (parent == null) return false;
      DirectoryInfo parentInfo = getInfoForDirectory(parent);
      if (parentInfo != null) return true;
      if (myDirectoryIndex.isProjectExcludeRoot(parent)) return true;
      parent = parent.getParent();
    }
  }
 public String getPackageNameByDirectory(@NotNull VirtualFile dir) {
   LOG.assertTrue(dir.isDirectory());
   return myDirectoryIndex.getPackageName(dir);
 }