Disabled editor highlighting for alien files.
This commit is contained in:
@@ -20,7 +20,6 @@ import com.intellij.lang.annotation.AnnotationHolder;
|
|||||||
import com.intellij.lang.annotation.Annotator;
|
import com.intellij.lang.annotation.Annotator;
|
||||||
import com.intellij.openapi.application.ApplicationManager;
|
import com.intellij.openapi.application.ApplicationManager;
|
||||||
import com.intellij.openapi.progress.ProcessCanceledException;
|
import com.intellij.openapi.progress.ProcessCanceledException;
|
||||||
import com.intellij.openapi.roots.ProjectFileIndex;
|
|
||||||
import com.intellij.psi.PsiElement;
|
import com.intellij.psi.PsiElement;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.checkers.DebugInfoUtil;
|
import org.jetbrains.jet.checkers.DebugInfoUtil;
|
||||||
@@ -40,13 +39,10 @@ public class DebugInfoAnnotator implements Annotator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void annotate(@NotNull PsiElement element, @NotNull final AnnotationHolder holder) {
|
public void annotate(@NotNull PsiElement element, @NotNull final AnnotationHolder holder) {
|
||||||
if (!isDebugInfoEnabled() || !JetPsiChecker.isErrorReportingEnabled()) {
|
if (!isDebugInfoEnabled() || !JetPsiChecker.isErrorReportingEnabled() || !JetPsiChecker.isInSourceContent(element)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!ProjectFileIndex.SERVICE.getInstance(element.getProject()).isInContent(element.getContainingFile().getVirtualFile())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (element instanceof JetFile) {
|
if (element instanceof JetFile) {
|
||||||
JetFile file = (JetFile) element;
|
JetFile file = (JetFile) element;
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -28,8 +28,10 @@ import com.intellij.openapi.editor.colors.TextAttributesKey;
|
|||||||
import com.intellij.openapi.progress.ProcessCanceledException;
|
import com.intellij.openapi.progress.ProcessCanceledException;
|
||||||
import com.intellij.openapi.roots.ProjectFileIndex;
|
import com.intellij.openapi.roots.ProjectFileIndex;
|
||||||
import com.intellij.openapi.util.TextRange;
|
import com.intellij.openapi.util.TextRange;
|
||||||
|
import com.intellij.openapi.vfs.VirtualFile;
|
||||||
import com.intellij.psi.MultiRangeReference;
|
import com.intellij.psi.MultiRangeReference;
|
||||||
import com.intellij.psi.PsiElement;
|
import com.intellij.psi.PsiElement;
|
||||||
|
import com.intellij.psi.PsiFile;
|
||||||
import com.intellij.psi.PsiReference;
|
import com.intellij.psi.PsiReference;
|
||||||
import com.intellij.xml.util.XmlStringUtil;
|
import com.intellij.xml.util.XmlStringUtil;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -100,18 +102,21 @@ public class JetPsiChecker implements Annotator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void annotate(@NotNull PsiElement element, @NotNull AnnotationHolder holder) {
|
public void annotate(@NotNull PsiElement element, @NotNull AnnotationHolder holder) {
|
||||||
|
if (!isInSourceContent(element)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for (HighlightingVisitor visitor : getBeforeAnalysisVisitors(holder)) {
|
for (HighlightingVisitor visitor : getBeforeAnalysisVisitors(holder)) {
|
||||||
element.accept(visitor);
|
element.accept(visitor);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (element instanceof JetFile) {
|
if (element instanceof JetFile) {
|
||||||
JetFile file = (JetFile)element;
|
JetFile file = (JetFile) element;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
BindingContext bindingContext = WholeProjectAnalyzerFacade.analyzeProjectWithCacheOnAFile(file).getBindingContext();
|
BindingContext bindingContext = WholeProjectAnalyzerFacade.analyzeProjectWithCacheOnAFile(file).getBindingContext();
|
||||||
|
|
||||||
boolean isInContent = ProjectFileIndex.SERVICE.getInstance(element.getProject()).isInContent(file.getVirtualFile());
|
if (errorReportingEnabled) {
|
||||||
if (errorReportingEnabled && isInContent) {
|
|
||||||
Collection<Diagnostic> diagnostics = Sets.newLinkedHashSet(bindingContext.getDiagnostics());
|
Collection<Diagnostic> diagnostics = Sets.newLinkedHashSet(bindingContext.getDiagnostics());
|
||||||
Set<PsiElement> redeclarations = Sets.newHashSet();
|
Set<PsiElement> redeclarations = Sets.newHashSet();
|
||||||
for (Diagnostic diagnostic : diagnostics) {
|
for (Diagnostic diagnostic : diagnostics) {
|
||||||
@@ -270,4 +275,16 @@ public class JetPsiChecker implements Annotator {
|
|||||||
annotation.setTooltip(getMessage(redeclarationDiagnostic));
|
annotation.setTooltip(getMessage(redeclarationDiagnostic));
|
||||||
return annotation;
|
return annotation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static boolean isInSourceContent(PsiElement element) {
|
||||||
|
PsiFile containingFile = element.getContainingFile();
|
||||||
|
if (containingFile == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
VirtualFile virtualFile = containingFile.getVirtualFile();
|
||||||
|
if (virtualFile == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return ProjectFileIndex.SERVICE.getInstance(element.getProject()).isInSourceContent(virtualFile);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user