use of com.intellij.openapi.roots.ProjectFileIndex in project intellij-community by JetBrains.
the class JavaFindUsagesProvider method getRootDirectoryForPackage.
public static String getRootDirectoryForPackage(PsiDirectory directory) {
PsiManager manager = directory.getManager();
final VirtualFile virtualFile = directory.getVirtualFile();
final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(manager.getProject()).getFileIndex();
VirtualFile root = fileIndex.getSourceRootForFile(virtualFile);
if (root == null) {
root = fileIndex.getClassRootForFile(virtualFile);
}
if (root != null) {
return root.getPresentableUrl();
}
return null;
}
use of com.intellij.openapi.roots.ProjectFileIndex in project intellij-community by JetBrains.
the class NonClasspathResolveScopeEnlarger method getAdditionalResolveScope.
@Override
public SearchScope getAdditionalResolveScope(@NotNull VirtualFile file, Project project) {
ProjectFileIndex index = ProjectFileIndex.SERVICE.getInstance(project);
if (index.isInLibraryClasses(file) || index.isInContent(file)) {
return null;
}
String fileExtension = file.getExtension();
if ("class".equals(fileExtension) || JavaFileType.DEFAULT_EXTENSION.equals(fileExtension)) {
for (PsiElementFinder finder : Extensions.getExtensions(PsiElementFinder.EP_NAME, project)) {
if (finder instanceof NonClasspathClassFinder) {
final List<VirtualFile> roots = ((NonClasspathClassFinder) finder).getClassRoots();
for (VirtualFile root : roots) {
if (VfsUtilCore.isAncestor(root, file, true)) {
return NonClasspathDirectoriesScope.compose(roots);
}
}
}
}
}
return null;
}
use of com.intellij.openapi.roots.ProjectFileIndex in project intellij-community by JetBrains.
the class RenamePsiPackageProcessor method createRenameMoveProcessor.
public static MoveDirectoryWithClassesProcessor createRenameMoveProcessor(final String newName, final PsiPackage psiPackage, final boolean searchInComments, final boolean searchInNonJavaFiles) {
final Project project = psiPackage.getProject();
final ProjectFileIndex index = ProjectRootManager.getInstance(project).getFileIndex();
final PsiDirectory[] directories = psiPackage.getDirectories();
return new MoveDirectoryWithClassesProcessor(project, directories, null, searchInComments, searchInNonJavaFiles, false, null) {
@Override
public TargetDirectoryWrapper getTargetDirectory(final PsiDirectory dir) {
final VirtualFile vFile = dir.getVirtualFile();
final VirtualFile sourceRoot = index.getSourceRootForFile(vFile);
LOG.assertTrue(sourceRoot != null, vFile.getPath());
return new TargetDirectoryWrapper(dir.getManager().findDirectory(sourceRoot), newName.replaceAll("\\.", "\\/"));
}
@Override
protected String getTargetName() {
return newName;
}
@Override
protected String getCommandName() {
return "Rename package";
}
};
}
use of com.intellij.openapi.roots.ProjectFileIndex in project intellij-community by JetBrains.
the class PsiDirectoryNode method contains.
@Override
public boolean contains(@NotNull VirtualFile file) {
final PsiDirectory value = getValue();
if (value == null) {
return false;
}
VirtualFile directory = value.getVirtualFile();
if (directory.getFileSystem() instanceof LocalFileSystem) {
file = PathUtil.getLocalFile(file);
}
if (!VfsUtilCore.isAncestor(directory, file, false)) {
return false;
}
final Project project = value.getProject();
PsiFileSystemItemFilter filter = getFilter();
if (filter != null) {
PsiFile psiFile = PsiManager.getInstance(project).findFile(file);
if (psiFile != null && !filter.shouldShow(psiFile))
return false;
PsiDirectory psiDirectory = PsiManager.getInstance(project).findDirectory(file);
if (psiDirectory != null && !filter.shouldShow(psiDirectory))
return false;
}
if (Registry.is("ide.hide.excluded.files")) {
final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(project).getFileIndex();
return !fileIndex.isExcluded(file);
} else {
return !FileTypeRegistry.getInstance().isFileIgnored(file);
}
}
use of com.intellij.openapi.roots.ProjectFileIndex in project intellij-community by JetBrains.
the class ProjectStructureSelectInTarget method canSelect.
@Override
public boolean canSelect(final SelectInContext context) {
final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(context.getProject()).getFileIndex();
final VirtualFile file = context.getVirtualFile();
if (file instanceof WrappingVirtualFile) {
final Object o = ((WrappingVirtualFile) file).getWrappedObject(context.getProject());
return o instanceof Facet;
}
return fileIndex.isInContent(file) || fileIndex.isInLibraryClasses(file) || fileIndex.isInLibrarySource(file) || StdFileTypes.IDEA_MODULE.equals(file.getFileType()) && findModuleByModuleFile(context.getProject(), file) != null;
}
Aggregations