mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-07 22:09:38 +07:00
fix jsp suppressions:
1. fix "suppress for file" inside a jsp file 2. allow "suppress for statement" if it's possible 3. forbid "suppress for member" if a member is synthetic
This commit is contained in:
@@ -17,6 +17,7 @@ package com.intellij.codeInsight.daemon.impl.actions;
|
||||
|
||||
import com.intellij.codeInsight.daemon.HighlightDisplayKey;
|
||||
import com.intellij.codeInspection.JavaSuppressionUtil;
|
||||
import com.intellij.lang.java.JavaLanguage;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.*;
|
||||
@@ -40,17 +41,8 @@ public class SuppressByJavaCommentFix extends SuppressByCommentFix {
|
||||
@Override
|
||||
@Nullable
|
||||
public PsiElement getContainer(PsiElement context) {
|
||||
if (hasJspMethodCallAsParent(context)) return null;
|
||||
return PsiTreeUtil.getParentOfType(context, PsiStatement.class, false);
|
||||
}
|
||||
|
||||
private static boolean hasJspMethodCallAsParent(PsiElement context) {
|
||||
while (true) {
|
||||
PsiMethod method = PsiTreeUtil.getParentOfType(context, PsiMethod.class);
|
||||
if (method == null) return false;
|
||||
if (method instanceof SyntheticElement) return true;
|
||||
context = method;
|
||||
}
|
||||
PsiStatement statement = PsiTreeUtil.getParentOfType(context, PsiStatement.class, false);
|
||||
return statement != null && JavaLanguage.INSTANCE.equals(statement.getLanguage()) ? statement : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -76,7 +76,7 @@ public class SuppressFix extends AbstractBatchSuppressByNoInspectionCommentFix {
|
||||
container = PsiTreeUtil.getParentOfType(container, PsiJavaDocumentedElement.class);
|
||||
if (container == null) return null;
|
||||
}
|
||||
return (PsiJavaDocumentedElement)container;
|
||||
return container instanceof SyntheticElement ? null : (PsiJavaDocumentedElement)container;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -19,7 +19,6 @@ package com.intellij.codeInspection;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.xml.XmlFile;
|
||||
import com.intellij.psi.xml.XmlTag;
|
||||
import com.intellij.util.ThreeState;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -138,10 +137,7 @@ public abstract class XmlSuppressableInspectionTool extends LocalInspectionTool
|
||||
@Override
|
||||
public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) {
|
||||
PsiElement element = descriptor.getPsiElement();
|
||||
PsiElement container = getContainer(element);
|
||||
if (container instanceof XmlFile) {
|
||||
myProvider.suppressForFile(element, myId);
|
||||
}
|
||||
myProvider.suppressForFile(element, myId);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
Reference in New Issue
Block a user