use of com.intellij.openapi.roots.ProjectFileIndex in project intellij-community by JetBrains.
the class JavaDocInfoGenerator method elementHasSourceCode.
private boolean elementHasSourceCode() {
PsiFileSystemItem[] items;
if (myElement instanceof PsiDirectory) {
final PsiPackage aPackage = JavaDirectoryService.getInstance().getPackage((PsiDirectory) myElement);
if (aPackage == null)
return false;
items = aPackage.getDirectories(new EverythingGlobalScope(myProject));
} else if (myElement instanceof PsiPackage) {
items = ((PsiPackage) myElement).getDirectories(new EverythingGlobalScope(myProject));
} else {
PsiFile containingFile = myElement.getNavigationElement().getContainingFile();
if (containingFile == null)
return false;
items = new PsiFileSystemItem[] { containingFile };
}
ProjectFileIndex projectFileIndex = ProjectFileIndex.SERVICE.getInstance(myProject);
for (PsiFileSystemItem item : items) {
VirtualFile file = item.getVirtualFile();
if (file != null && projectFileIndex.isInSource(file))
return true;
}
return false;
}
use of com.intellij.openapi.roots.ProjectFileIndex in project intellij-community by JetBrains.
the class JavaDirectoryServiceImpl method getPackage.
@Override
public PsiPackage getPackage(@NotNull PsiDirectory dir) {
ProjectFileIndex projectFileIndex = ProjectRootManager.getInstance(dir.getProject()).getFileIndex();
String packageName = projectFileIndex.getPackageNameByDirectory(dir.getVirtualFile());
if (packageName == null)
return null;
return JavaPsiFacade.getInstance(dir.getProject()).findPackage(packageName);
}
use of com.intellij.openapi.roots.ProjectFileIndex in project intellij-community by JetBrains.
the class ForwardDependenciesBuilder method analyze.
@Override
public void analyze() {
final PsiManager psiManager = PsiManager.getInstance(getProject());
psiManager.startBatchFilesProcessingMode();
final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(getProject()).getFileIndex();
try {
getScope().accept(new PsiRecursiveElementVisitor() {
@Override
public void visitFile(final PsiFile file) {
visit(file, fileIndex, psiManager, 0);
}
});
} finally {
psiManager.finishBatchFilesProcessingMode();
}
}
use of com.intellij.openapi.roots.ProjectFileIndex in project intellij-community by JetBrains.
the class NullFileReferenceHelper method findRoot.
@Override
public PsiFileSystemItem findRoot(final Project project, @NotNull final VirtualFile file) {
final ProjectFileIndex index = ProjectRootManager.getInstance(project).getFileIndex();
VirtualFile contentRootForFile = index.getContentRootForFile(file);
return contentRootForFile != null ? PsiManager.getInstance(project).findDirectory(contentRootForFile) : null;
}
use of com.intellij.openapi.roots.ProjectFileIndex in project intellij-community by JetBrains.
the class CreateClassOrPackageFix method chooseDirectory.
@Nullable
private PsiDirectory chooseDirectory(final Project project, final PsiFile file) {
PsiDirectory preferredDirectory = myWritableDirectoryList.isEmpty() ? null : myWritableDirectoryList.get(0);
final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(project).getFileIndex();
final VirtualFile virtualFile = file.getVirtualFile();
assert virtualFile != null;
final Module moduleForFile = fileIndex.getModuleForFile(virtualFile);
if (myWritableDirectoryList.size() > 1 && !ApplicationManager.getApplication().isUnitTestMode()) {
if (moduleForFile != null) {
for (PsiDirectory directory : myWritableDirectoryList) {
if (fileIndex.getModuleForFile(directory.getVirtualFile()) == moduleForFile) {
preferredDirectory = directory;
break;
}
}
}
return DirectoryChooserUtil.chooseDirectory(myWritableDirectoryList.toArray(new PsiDirectory[myWritableDirectoryList.size()]), preferredDirectory, project, new HashMap<>());
}
return preferredDirectory;
}
Aggregations