@Override
  public boolean processPackageDirectories(@NotNull PsiPackage psiPackage,
                                           final @NotNull GlobalSearchScope scope,
                                           final @NotNull Processor<? super PsiDirectory> consumer,
                                           boolean includeLibrarySources) {
    final PsiManager psiManager = PsiManager.getInstance(myProject);
    return PackageIndex.getInstance(myProject)
      .getDirsByPackageName(psiPackage.getQualifiedName(), includeLibrarySources)
      .forEach(new ReadActionProcessor<VirtualFile>() {
        @Override
        public boolean processInReadAction(final VirtualFile dir) {
          if (scope.contains(dir)) {
            PsiDirectory psiDir = psiManager.findDirectory(dir);
            if (psiDir != null && !consumer.process(psiDir)) return false;
          }
          return true;
        }
      });
  }
@Override
  public boolean processPackageDirectories(@NotNull PsiPackage psiPackage,
                                           final @NotNull GlobalSearchScope scope,
                                           final @NotNull Processor<? super PsiDirectory> consumer,
                                           boolean includeLibrarySources)