Added quickfix on unused import
This commit is contained in:
@@ -16,21 +16,19 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.inspections
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionToolSession
|
||||
import com.intellij.codeInspection.ProblemHighlightType
|
||||
import com.intellij.codeInspection.ProblemsHolder
|
||||
import com.intellij.codeInsight.actions.OptimizeImportsProcessor
|
||||
import com.intellij.codeInspection.*
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.Key
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.idea.JetBundle
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveImportReference
|
||||
import org.jetbrains.kotlin.idea.imports.KotlinImportOptimizer
|
||||
import org.jetbrains.kotlin.idea.imports.importableFqNameSafe
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.psi.JetFile
|
||||
import org.jetbrains.kotlin.psi.JetImportDirective
|
||||
import org.jetbrains.kotlin.psi.JetSimpleNameExpression
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getQualifiedElementSelector
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.bindingContextUtil.getReferenceTargets
|
||||
import java.util.HashSet
|
||||
|
||||
@@ -78,8 +76,20 @@ class UnusedImportInspection : AbstractKotlinInspection() {
|
||||
problemsHolder.registerProblem(
|
||||
directive,
|
||||
"Unused import directive",
|
||||
ProblemHighlightType.LIKE_UNUSED_SYMBOL)
|
||||
ProblemHighlightType.LIKE_UNUSED_SYMBOL,
|
||||
OptimizeImportsQuickFix(file))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class OptimizeImportsQuickFix(private val file: JetFile): LocalQuickFix {
|
||||
override fun getName() = "Optimize imports"
|
||||
|
||||
override fun getFamilyName() = getName()
|
||||
|
||||
override fun applyFix(project: Project, descriptor: ProblemDescriptor) {
|
||||
OptimizeImportsProcessor(project, file).run()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
org.jetbrains.kotlin.idea.inspections.UnusedImportInspection
|
||||
@@ -0,0 +1,8 @@
|
||||
// "Optimize imports" "true"
|
||||
|
||||
<caret>import java.io.*
|
||||
import java.util.*
|
||||
|
||||
fun foo(list: ArrayList<String>) {
|
||||
list.add("")
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
// "Optimize imports" "true"
|
||||
|
||||
import java.util.ArrayList
|
||||
|
||||
fun foo(list: ArrayList<String>) {
|
||||
list.add("")
|
||||
}
|
||||
@@ -4471,6 +4471,21 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("idea/testData/quickfix/optimizeImports")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
public static class OptimizeImports extends AbstractQuickFixTest {
|
||||
public void testAllFilesPresentInOptimizeImports() throws Exception {
|
||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/optimizeImports"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), true);
|
||||
}
|
||||
|
||||
@TestMetadata("fileRuntime.kt")
|
||||
public void testFileRuntime() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/optimizeImports/fileRuntime.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("idea/testData/quickfix/override")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
|
||||
Reference in New Issue
Block a user