diff --git a/python/src/com/jetbrains/python/console/ConsoleVisitorFilter.java b/python/src/com/jetbrains/python/console/ConsoleVisitorFilter.java index 5e6c27fefb1b..0023ea456dbb 100644 --- a/python/src/com/jetbrains/python/console/ConsoleVisitorFilter.java +++ b/python/src/com/jetbrains/python/console/ConsoleVisitorFilter.java @@ -12,13 +12,13 @@ import org.jetbrains.annotations.NotNull; */ public class ConsoleVisitorFilter implements PythonVisitorFilter { @Override - public boolean isSupported(@NotNull Class visitorClass, @NotNull PsiFile file) { + public boolean isSupported(@NotNull final Class visitorClass, @NotNull final PsiFile file) { //if we're in console if (PydevConsoleRunner.isInPydevConsole(file)) { //inspections - if (visitorClass == PyUnusedLocalInspectionVisitor.class || visitorClass == PyUnboundLocalVariableInspection.Visitor.class || - visitorClass == PyStatementEffectInspection.Visitor.class || visitorClass == PySingleQuotedDocstringInspection.Visitor.class || - visitorClass == PyDocstringInspection.Visitor.class) { + if (visitorClass == PyUnusedLocalInspection.class || visitorClass == PyUnboundLocalVariableInspection.class || + visitorClass == PyStatementEffectInspection.class || visitorClass == PySingleQuotedDocstringInspection.class || + visitorClass == PyDocstringInspection.class) { return false; } diff --git a/python/src/com/jetbrains/python/inspections/PyInspection.java b/python/src/com/jetbrains/python/inspections/PyInspection.java index 0e92d789d9fa..4eb385395643 100644 --- a/python/src/com/jetbrains/python/inspections/PyInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyInspection.java @@ -6,12 +6,14 @@ import com.intellij.codeInspection.SuppressIntentionAction; import com.intellij.codeInspection.SuppressionUtil; import com.intellij.psi.PsiComment; import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiFile; import com.intellij.psi.PsiWhiteSpace; import com.intellij.psi.util.PsiTreeUtil; import com.jetbrains.python.PyBundle; import com.jetbrains.python.actions.PySuppressInspectionFix; import com.jetbrains.python.codeInsight.controlflow.ScopeOwner; import com.jetbrains.python.psi.*; +import com.jetbrains.python.psi.impl.PyFileImpl; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -63,7 +65,12 @@ public abstract class PyInspection extends LocalInspectionTool implements Custom @Override public boolean isSuppressedFor(PsiElement element) { - return isSuppressedForParent(element, PyStatement.class) || + final PsiFile file = element.getContainingFile(); + boolean isAccepted = true; + if (file instanceof PyFileImpl) { + isAccepted = ((PyFileImpl)file).isAcceptedFor(this.getClass()); + } + return !isAccepted || isSuppressedForParent(element, PyStatement.class) || isSuppressedForParent(element, PyFunction.class) || isSuppressedForParent(element, PyClass.class) || isSuppressForCodeFragment(element); diff --git a/python/src/com/jetbrains/python/psi/impl/PyFileImpl.java b/python/src/com/jetbrains/python/psi/impl/PyFileImpl.java index 5d2a47ab0da4..2558ed937891 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyFileImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyFileImpl.java @@ -130,7 +130,7 @@ public class PyFileImpl extends PsiFileBase implements PyFile, PyExpression { } } - private boolean isAcceptedFor(@NotNull Class visitorClass) { + public boolean isAcceptedFor(@NotNull Class visitorClass) { final FileViewProvider viewProvider = getViewProvider(); final Language lang; if (viewProvider instanceof TemplateLanguageFileViewProvider) {