"optimize imports" quickfix for unused imports (PY-268)

This commit is contained in:
Dmitry Jemerov
2010-04-30 21:36:30 +04:00
parent 847800c572
commit bf294f8eee
2 changed files with 38 additions and 1 deletions
@@ -0,0 +1,37 @@
package com.jetbrains.python.actions;
import com.intellij.codeInspection.LocalQuickFix;
import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.lang.ImportOptimizer;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.command.CommandProcessor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiFile;
import com.jetbrains.python.codeInsight.PyImportOptimizer;
import org.jetbrains.annotations.NotNull;
/**
* @author yole
*/
public class OptimizeImportsQuickFix implements LocalQuickFix {
@NotNull
public String getName() {
return "Optimize imports";
}
@NotNull
public String getFamilyName() {
return "Optimize imports";
}
public void applyFix(@NotNull final Project project, @NotNull ProblemDescriptor descriptor) {
final PsiFile file = descriptor.getPsiElement().getContainingFile();
ImportOptimizer optimizer = new PyImportOptimizer();
final Runnable runnable = optimizer.processFile(file);
ApplicationManager.getApplication().runWriteAction(new Runnable() {
public void run() {
CommandProcessor.getInstance().executeCommand(project, runnable, getFamilyName(), this);
}
});
}
}
@@ -450,7 +450,7 @@ public class PyUnresolvedReferencesInspection extends LocalInspectionTool {
public void highlightUnusedImports() {
final List<PsiElement> unused = collectUnusedImportElements();
for (PsiElement element : unused) {
registerProblem(element, "Unused import statement", ProblemHighlightType.LIKE_UNUSED_SYMBOL, null);
registerProblem(element, "Unused import statement", ProblemHighlightType.LIKE_UNUSED_SYMBOL, null, new OptimizeImportsQuickFix());
}
}