@Nullable public static PsiElement getContextElement(@Nullable ConfigurationContext context) { if (context == null) { return null; } PsiElement psiElement = context.getPsiLocation(); if (psiElement == null || !psiElement.isValid()) { return null; } FileIndexFacade indexFacade = FileIndexFacade.getInstance(psiElement.getProject()); PsiFileSystemItem psiFile = psiElement instanceof PsiFileSystemItem ? (PsiFileSystemItem)psiElement : psiElement.getContainingFile(); VirtualFile file = psiFile != null ? psiFile.getVirtualFile() : null; if (file != null && file.getFileType() != ScratchFileType.INSTANCE && (!indexFacade.isInContent(file) || indexFacade.isExcludedFile(file))) { return null; } return psiElement; }
@NotNull @Override public Result visitFileEx(@NotNull VirtualFile file) { ProgressIndicatorProvider.checkCanceled(); if (file.isDirectory() && !FileIndexFacade.getInstance(getProject()).isInContent(file)) { return SKIP_CHILDREN; } if (!file.isDirectory() && GoCoverageEngine.INSTANCE.coverageProjectViewStatisticsApplicableTo(file)) { DirCoverageInfo dirCoverageInfo = getOrCreateDirectoryInfo(file.getParent()); FileCoverageInfo fileCoverageInfo = getOrCreateFileInfo(file); data.processFile(file.getPath(), rangeData -> { if (rangeData.hits > 0) { fileCoverageInfo.coveredLineCount += rangeData.statements; } fileCoverageInfo.totalLineCount += rangeData.statements; return true; }); if (fileCoverageInfo.totalLineCount > 0) { dirCoverageInfo.totalLineCount += fileCoverageInfo.totalLineCount; dirCoverageInfo.totalFilesCount++; } if (fileCoverageInfo.coveredLineCount > 0) { dirCoverageInfo.coveredLineCount += fileCoverageInfo.coveredLineCount; dirCoverageInfo.coveredFilesCount++; } } return CONTINUE; }
@NotNull private static Collection<VirtualFile> filterOutIgnored( @NotNull Project project, @NotNull Collection<VirtualFile> files) { final ChangeListManager changeListManager = ChangeListManager.getInstance(project); final FileIndexFacade fileIndex = FileIndexFacade.getInstance(project); return Collections2.filter( files, file -> !changeListManager.isIgnoredFile(file) && !fileIndex.isExcludedFile(file)); }
public static boolean isIndexedFile(Project project, @Nullable VirtualFile virtualFile) { boolean isVirtualFileWindow; try { Class<?> fileWindow = BashResolveUtil.class.getClassLoader().loadClass("com.intellij.injected.editor.VirtualFileWindow"); isVirtualFileWindow = fileWindow.isInstance(virtualFile); } catch (ClassNotFoundException ignored) { //probably a version where that class is not yet present (145.x - 162.x) isVirtualFileWindow = false; } return virtualFile != null && !isVirtualFileWindow && FileIndexFacade.getInstance(project).isInContent(virtualFile); }
@Nullable static PsiElement getContextElement(@Nullable ConfigurationContext context) { if (context == null) { return null; } PsiElement psiElement = context.getPsiLocation(); if (psiElement == null || !psiElement.isValid()) { return null; } FileIndexFacade indexFacade = FileIndexFacade.getInstance(psiElement.getProject()); PsiFileSystemItem psiFile = psiElement instanceof PsiFileSystemItem ? (PsiFileSystemItem) psiElement : psiElement.getContainingFile(); VirtualFile file = psiFile != null ? psiFile.getVirtualFile() : null; if (file != null && file.getFileType() != ScratchFileType.INSTANCE && (!indexFacade.isInContent(file) || indexFacade.isExcludedFile(file))) { return null; } return psiElement; }