ignore unused 'request' parameter for Django request methods

This commit is contained in:
Dmitry Jemerov
2010-07-21 20:06:39 +04:00
parent 8296ae1f1c
commit f3acc7c422
3 changed files with 25 additions and 0 deletions
@@ -282,6 +282,7 @@
<extensionPoint qualifiedName="Pythonid.unresolvedReferenceQuickFixProvider"
interface="com.jetbrains.python.inspections.PyUnresolvedReferenceQuickFixProvider"/>
<extensionPoint qualifiedName="Pythonid.dumbAnnotator" interface="com.jetbrains.python.validation.PyAnnotator"/>
<extensionPoint qualifiedName="Pythonid.unusedLocalFilter" interface="com.jetbrains.python.inspections.UnusedLocalFilter"/>
</extensionPoints>
<extensions defaultExtensionNs="Pythonid">
@@ -298,6 +299,7 @@
<typeProvider implementation="com.jetbrains.django.codeInsight.DjangoTypeProvider"/>
<unresolvedReferenceQuickFixProvider implementation="com.jetbrains.django.ref.DjangoViewReferenceQuickFixProvider"/>
<runnableUnitTestFilter implementation="com.jetbrains.django.testRunner.DjangoUnitTestFilter"/>
<unusedLocalFilter implementation="com.jetbrains.django.codeInsight.DjangoUnusedLocalFilter"/>
<!-- App Engine -->
<typeProvider implementation="com.jetbrains.appengine.model.AppEngineTypeProvider"/>
@@ -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(),
@@ -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<UnusedLocalFilter> EP_NAME = ExtensionPointName.create("Pythonid.unusedLocalFilter");
boolean ignoreUnused(PsiElement local);
}