diff --git a/python/src/META-INF/python-plugin-common.xml b/python/src/META-INF/python-plugin-common.xml index 729da5b1ad1f..7fd6a1edc452 100644 --- a/python/src/META-INF/python-plugin-common.xml +++ b/python/src/META-INF/python-plugin-common.xml @@ -282,6 +282,7 @@ + @@ -298,6 +299,7 @@ + diff --git a/python/src/com/jetbrains/python/inspections/PyUnusedLocalInspectionVisitor.java b/python/src/com/jetbrains/python/inspections/PyUnusedLocalInspectionVisitor.java index 15ea0fbc50ab..2b962b902d30 100644 --- a/python/src/com/jetbrains/python/inspections/PyUnusedLocalInspectionVisitor.java +++ b/python/src/com/jetbrains/python/inspections/PyUnusedLocalInspectionVisitor.java @@ -10,6 +10,7 @@ import com.intellij.codeInspection.ProblemHighlightType; import com.intellij.codeInspection.ProblemsHolder; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.command.CommandProcessor; +import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiElement; import com.intellij.psi.ResolveResult; @@ -219,8 +220,17 @@ class PyUnusedLocalInspectionVisitor extends PyInspectionVisitor { } void registerProblems() { + final UnusedLocalFilter[] filters = Extensions.getExtensions(UnusedLocalFilter.EP_NAME); // Register problems for (PsiElement element : myUnusedElements) { + boolean ignoreUnused = false; + for (UnusedLocalFilter filter : filters) { + if (filter.ignoreUnused(element)) { + ignoreUnused = true; + } + } + if (ignoreUnused) continue; + // Local function if (element instanceof PyFunction){ registerWarning(((PyFunction)element).getNameIdentifier(), diff --git a/python/src/com/jetbrains/python/inspections/UnusedLocalFilter.java b/python/src/com/jetbrains/python/inspections/UnusedLocalFilter.java new file mode 100644 index 000000000000..e977fac541d7 --- /dev/null +++ b/python/src/com/jetbrains/python/inspections/UnusedLocalFilter.java @@ -0,0 +1,13 @@ +package com.jetbrains.python.inspections; + +import com.intellij.openapi.extensions.ExtensionPointName; +import com.intellij.psi.PsiElement; + +/** + * @author yole + */ +public interface UnusedLocalFilter { + ExtensionPointName EP_NAME = ExtensionPointName.create("Pythonid.unusedLocalFilter"); + + boolean ignoreUnused(PsiElement local); +}