Search in sources :

Example 56 with ProjectFileIndex

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;
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) ProjectFileIndex(com.intellij.openapi.roots.ProjectFileIndex)

Example 57 with ProjectFileIndex

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;
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) ProjectFileIndex(com.intellij.openapi.roots.ProjectFileIndex)

Example 58 with ProjectFileIndex

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";
        }
    };
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) Project(com.intellij.openapi.project.Project) MoveDirectoryWithClassesProcessor(com.intellij.refactoring.move.moveClassesOrPackages.MoveDirectoryWithClassesProcessor) ProjectFileIndex(com.intellij.openapi.roots.ProjectFileIndex)

Example 59 with ProjectFileIndex

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);
    }
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) Project(com.intellij.openapi.project.Project) ProjectFileIndex(com.intellij.openapi.roots.ProjectFileIndex) PsiDirectory(com.intellij.psi.PsiDirectory) LocalFileSystem(com.intellij.openapi.vfs.LocalFileSystem) PsiFile(com.intellij.psi.PsiFile)

Example 60 with ProjectFileIndex

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;
}
Also used : WrappingVirtualFile(com.intellij.openapi.vfs.WrappingVirtualFile) VirtualFile(com.intellij.openapi.vfs.VirtualFile) ProjectFileIndex(com.intellij.openapi.roots.ProjectFileIndex) WrappingVirtualFile(com.intellij.openapi.vfs.WrappingVirtualFile)

Aggregations

ProjectFileIndex (com.intellij.openapi.roots.ProjectFileIndex)157 VirtualFile (com.intellij.openapi.vfs.VirtualFile)119 Module (com.intellij.openapi.module.Module)52 Project (com.intellij.openapi.project.Project)49 Nullable (org.jetbrains.annotations.Nullable)37 NotNull (org.jetbrains.annotations.NotNull)24 PsiDirectory (com.intellij.psi.PsiDirectory)23 GlobalSearchScope (com.intellij.psi.search.GlobalSearchScope)16 PsiFile (com.intellij.psi.PsiFile)14 ArrayList (java.util.ArrayList)13 IdeView (com.intellij.ide.IdeView)10 OrderEntry (com.intellij.openapi.roots.OrderEntry)9 THashSet (gnu.trove.THashSet)6 PropertiesFile (com.intellij.lang.properties.psi.PropertiesFile)5 ProjectRootManager (com.intellij.openapi.roots.ProjectRootManager)5 AbstractTreeNode (com.intellij.ide.util.treeView.AbstractTreeNode)4 File (java.io.File)4 List (java.util.List)4 JSClass (com.intellij.lang.javascript.psi.ecmal4.JSClass)3 Presentation (com.intellij.openapi.actionSystem.Presentation)3