diff --git a/platform/core-api/src/com/intellij/psi/util/PsiTreeUtil.java b/platform/core-api/src/com/intellij/psi/util/PsiTreeUtil.java index eba6d6147f99..8fbb364a1269 100644 --- a/platform/core-api/src/com/intellij/psi/util/PsiTreeUtil.java +++ b/platform/core-api/src/com/intellij/psi/util/PsiTreeUtil.java @@ -3,7 +3,6 @@ package com.intellij.psi.util; import com.intellij.lang.ASTNode; import com.intellij.lang.Language; -import com.intellij.lang.injection.InjectedLanguageManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.Key; @@ -124,13 +123,6 @@ public class PsiTreeUtil { if (element1 == element2) return element1; PsiFile file1 = element1.getContainingFile(); PsiFile file2 = element2.getContainingFile(); - if (file1 != null && file2 != null) { - InjectedLanguageManager ilm = InjectedLanguageManager.getInstance(file1.getProject()); - if (ilm.isInjectedFragment(file1) != ilm.isInjectedFragment(file2)) { - // injected and non-injected files have no common ancestor - return null; - } - } PsiElement topLevel = file1 == file2 ? file1 : null; diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/LocalInspectionsPass.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/LocalInspectionsPass.java index 2e5fbed660be..6a5fbd2830ff 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/LocalInspectionsPass.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/LocalInspectionsPass.java @@ -160,13 +160,9 @@ public class LocalInspectionsPass extends ProgressableTextEditorHighlightingPass } private void addDescriptorsFromInjectedResults(@NotNull InspectionManager iManager, @NotNull GlobalInspectionContextImpl context) { - InjectedLanguageManager ilManager = InjectedLanguageManager.getInstance(myProject); - PsiDocumentManager documentManager = PsiDocumentManager.getInstance(myProject); - for (Map.Entry> entry : result.entrySet()) { PsiFile file = entry.getKey(); if (file == getFile()) continue; // not injected - DocumentWindow documentRange = (DocumentWindow)documentManager.getDocument(file); List resultList = entry.getValue(); for (InspectionResult inspectionResult : resultList) { LocalInspectionToolWrapper toolWrapper = inspectionResult.tool; @@ -174,22 +170,8 @@ public class LocalInspectionsPass extends ProgressableTextEditorHighlightingPass PsiElement psiElement = descriptor.getPsiElement(); if (psiElement == null) continue; if (SuppressionUtil.inspectionResultSuppressed(psiElement, toolWrapper.getTool())) continue; - List editables = ilManager.intersectWithAllEditableFragments(file, ((ProblemDescriptorBase)descriptor).getTextRange()); - for (TextRange editable : editables) { - TextRange hostRange = documentRange.injectedToHost(editable); - QuickFix[] fixes = descriptor.getFixes(); - LocalQuickFix[] localFixes = null; - if (fixes != null) { - localFixes = new LocalQuickFix[fixes.length]; - for (int k = 0; k < fixes.length; k++) { - QuickFix fix = fixes[k]; - localFixes[k] = (LocalQuickFix)fix; - } - } - ProblemDescriptor patchedDescriptor = iManager.createProblemDescriptor(getFile(), hostRange, descriptor.getDescriptionTemplate(), - descriptor.getHighlightType(), true, localFixes); - addDescriptors(toolWrapper, patchedDescriptor, context); - } + + addDescriptors(toolWrapper, descriptor, context); } } } diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ui/DefaultInspectionToolPresentation.java b/platform/lang-impl/src/com/intellij/codeInspection/ui/DefaultInspectionToolPresentation.java index b3f0d406ea97..ccf993a4f86b 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ui/DefaultInspectionToolPresentation.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ui/DefaultInspectionToolPresentation.java @@ -14,6 +14,7 @@ import com.intellij.codeInspection.reference.RefManager; import com.intellij.codeInspection.reference.RefVisitor; import com.intellij.codeInspection.ui.util.SynchronizedBidiMultiMap; import com.intellij.configurationStore.JbXmlOutputter; +import com.intellij.injected.editor.VirtualFileWindow; import com.intellij.lang.annotation.HighlightSeverity; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; @@ -52,8 +53,8 @@ public class DefaultInspectionToolPresentation implements InspectionToolPresenta @NotNull private final GlobalInspectionContextImpl myContext; protected InspectionNode myToolNode; - protected final SynchronizedBidiMultiMap myProblemElements = createBidiMap(); - protected final SynchronizedBidiMultiMap mySuppressedElements = createBidiMap(); + private final SynchronizedBidiMultiMap myProblemElements = createBidiMap(); + private final SynchronizedBidiMultiMap mySuppressedElements = createBidiMap(); private final SynchronizedBidiMultiMap myResolvedElements = createBidiMap(); private final SynchronizedBidiMultiMap myExcludedElements = createBidiMap(); @@ -348,7 +349,7 @@ public class DefaultInspectionToolPresentation implements InspectionToolPresenta } } - protected void exportResult(@NotNull RefEntity refEntity, @NotNull CommonProblemDescriptor descriptor, @NotNull Element element) { + private void exportResult(@NotNull RefEntity refEntity, @NotNull CommonProblemDescriptor descriptor, @NotNull Element element) { final PsiElement psiElement = descriptor instanceof ProblemDescriptor ? ((ProblemDescriptor)descriptor).getPsiElement() : null; @NonNls Element problemClassElement = new Element(InspectionsBundle.message("inspection.export.results.problem.element.tag")); @@ -512,7 +513,7 @@ public class DefaultInspectionToolPresentation implements InspectionToolPresenta }; } - public static SynchronizedBidiMultiMap createBidiMap() { + private static SynchronizedBidiMultiMap createBidiMap() { return new SynchronizedBidiMultiMap() { @NotNull @Override @@ -531,6 +532,7 @@ public class DefaultInspectionToolPresentation implements InspectionToolPresenta StreamEx.of(descriptors).select(ProblemDescriptorBase.class).forEach(d -> { VirtualFile file = d.getContainingFile(); if (file != null) { + if (file instanceof VirtualFileWindow) file = ((VirtualFileWindow)file).getDelegate(); LOG.assertTrue(file.equals(entityFile), "descriptor and containing entity files should be the same; descriptor: " + d.getDescriptionTemplate()); } });