skip batch inspections on the library sources

This commit is contained in:
anna
2012-04-12 13:17:43 +02:00
parent faa005bfb9
commit 113cc924dd
4 changed files with 31 additions and 15 deletions

View File

@@ -21,7 +21,6 @@
package com.intellij.analysis;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ProjectFileIndex;
@@ -111,17 +110,6 @@ public class JavaAnalysisScope extends AnalysisScope {
super.initFilesSet();
}
@Override
protected boolean shouldHighlightFile(PsiFile file) {
final boolean shouldHighlight = super.shouldHighlightFile(file);
if (!shouldHighlight) return false;
if (file.getFileType() == StdFileTypes.JAVA) {
final VirtualFile virtualFile = file.getVirtualFile();
if (virtualFile != null && ProjectRootManager.getInstance(file.getProject()).getFileIndex().isInLibrarySource(virtualFile)) return false;
}
return shouldHighlight;
}
@Override
protected void accept(@NotNull final PsiElementVisitor visitor, final boolean needReadAction) {
if (myElement instanceof PsiPackage) {

View File

@@ -17,6 +17,8 @@ package com.intellij.codeInsight.daemon;
import com.intellij.codeInsight.daemon.impl.CollectHighlightsUtil;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.roots.ProjectRootManager;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFile;
import org.jetbrains.annotations.NotNull;
@@ -26,4 +28,18 @@ public class JavaProblemHighlightFilter extends ProblemHighlightFilter {
public boolean shouldHighlight(@NotNull PsiFile psiFile) {
return psiFile.getFileType() != StdFileTypes.JAVA || !CollectHighlightsUtil.isOutsideSourceRoot(psiFile);
}
@Override
public boolean shouldProcessInBatch(@NotNull PsiFile psiFile) {
final boolean shouldHighlight = shouldHighlightFile(psiFile);
if (shouldHighlight) {
if (psiFile.getFileType() == StdFileTypes.JAVA) {
final VirtualFile virtualFile = psiFile.getVirtualFile();
if (virtualFile != null && ProjectRootManager.getInstance(psiFile.getProject()).getFileIndex().isInLibrarySource(virtualFile)) {
return false;
}
}
}
return shouldHighlight;
}
}