Let Implement Quickfix: Launch "Implement Members" dialog after applying #KT-11836 Fixed

This commit is contained in:
Kirill Rakhman
2016-04-08 21:38:06 +02:00
committed by Mikhail Glukhikh
parent 9bf395a4cd
commit 56fd2d28b8
3 changed files with 24 additions and 4 deletions
@@ -18,8 +18,10 @@ package org.jetbrains.kotlin.idea.quickfix
import com.intellij.codeInsight.intention.LowPriorityAction
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.fileEditor.FileEditorManager
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiFile
import org.jetbrains.kotlin.idea.core.overrideImplement.ImplementMembersHandler
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.containsStarProjections
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
import org.jetbrains.kotlin.idea.util.ShortenReferences
@@ -73,5 +75,15 @@ class LetImplementInterfaceFix(
val superTypeEntry = KtPsiFactory(element).createSuperTypeEntry(expectedTypeNameSourceCode)
val entryElement = element.addSuperTypeListEntry(superTypeEntry)
ShortenReferences.DEFAULT.process(entryElement)
val implementMembersHandler = ImplementMembersHandler()
if (implementMembersHandler.collectMembersToGenerate(element).isEmpty()) return
if (editor != null) {
editor.caretModel.moveToOffset(element.textRange.startOffset)
val containingFile = element.containingFile
FileEditorManager.getInstance(project).openFile(containingFile.virtualFile, true)
implementMembersHandler.invoke(project, editor, containingFile)
}
}
}
@@ -9,5 +9,7 @@ fun bar() {
fun foo(a: A) {
}
interface A
interface A {
fun gav()
}
class B
@@ -2,12 +2,18 @@
package let.implement
fun bar() {
foo(B()<caret>)
foo(B())
}
fun foo(a: A) {
}
interface A
class B : A
interface A {
fun gav()
}
class B : A {
override fun gav() {
throw UnsupportedOperationException()
}
}