"Add else branch" on when quickfix: don't add braces #KT-5088 Fixed
This commit is contained in:
committed by
Mikhail Glukhikh
parent
f22133be7e
commit
57ae60e9dc
@@ -20,7 +20,10 @@ import com.intellij.codeInsight.CodeInsightUtilCore
|
||||
import com.intellij.openapi.editor.Editor
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtPsiFactory
|
||||
import org.jetbrains.kotlin.psi.KtWhenEntry
|
||||
import org.jetbrains.kotlin.psi.KtWhenExpression
|
||||
import org.jetbrains.kotlin.psi.psiUtil.endOffset
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
|
||||
|
||||
@@ -36,10 +39,13 @@ class AddWhenElseBranchFix(element: KtWhenExpression) : KotlinQuickFixAction<KtW
|
||||
override fun invoke(project: Project, editor: Editor?, file: KtFile) {
|
||||
val element = element ?: return
|
||||
val psiFactory = KtPsiFactory(file)
|
||||
val entry = psiFactory.createWhenEntry("else -> {}")
|
||||
val entry = psiFactory.createWhenEntry("else ->")
|
||||
val whenCloseBrace = element.closeBrace ?: error("isAvailable should check if close brace exist")
|
||||
val insertedWhenEntry = CodeInsightUtilCore.forcePsiPostprocessAndRestoreElement(element.addBefore(entry, whenCloseBrace)) as KtWhenEntry
|
||||
editor!!.caretModel.moveToOffset((insertedWhenEntry.expression as KtBlockExpression).lBrace!!.endOffset)
|
||||
val insertedWhenEntry =
|
||||
CodeInsightUtilCore.forcePsiPostprocessAndRestoreElement(element.addBefore(entry, whenCloseBrace)) as KtWhenEntry
|
||||
val endOffset = insertedWhenEntry.endOffset
|
||||
editor?.document?.insertString(endOffset, " ")
|
||||
editor?.caretModel?.moveToOffset(endOffset + 1)
|
||||
}
|
||||
|
||||
companion object : KotlinSingleIntentionActionFactory() {
|
||||
|
||||
@@ -3,8 +3,7 @@ enum class Color { R, G, B }
|
||||
fun use(c: Color) {
|
||||
when (c) {
|
||||
Color.R -> red()
|
||||
else -> {
|
||||
}
|
||||
else -> <caret>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ fun test() {
|
||||
val x = when (a) {
|
||||
in 0..11 -> { /* some code */ }
|
||||
12, 13, 14 -> { /* some code */ }
|
||||
else -> {<caret>
|
||||
}
|
||||
else -> <caret>
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,6 @@
|
||||
fun test() {
|
||||
val a = 12
|
||||
val x = when (a) {
|
||||
else -> {<caret>
|
||||
}
|
||||
else -> <caret>
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user