Fix "Add name to argument" (disable reformatting in quick-fix text)

Four relevant quick-fix tests should be fixed after it
This commit is contained in:
Mikhail Glukhikh
2018-08-06 16:35:01 +03:00
parent 28484f31e7
commit 06d339639f
2 changed files with 12 additions and 6 deletions
@@ -482,13 +482,19 @@ class KtPsiFactory @JvmOverloads constructor(private val project: Project, val m
createExpressionByPattern("if ($0) $1", condition, thenExpr)) as KtIfExpression
}
fun createArgument(expression: KtExpression?, name: Name? = null, isSpread: Boolean = false): KtValueArgument {
val argumentList = buildByPattern({ pattern, args -> createByPattern(pattern, *args) { createCallArguments(it) } }) {
fun createArgument(
expression: KtExpression?,
name: Name? = null,
isSpread: Boolean = false,
reformat: Boolean = true
): KtValueArgument {
val argumentList = buildByPattern(
{ pattern, args -> createByPattern(pattern, *args, reformat = reformat) { createCallArguments(it) } }) {
appendFixedText("(")
if (name != null) {
appendName(name)
appendFixedText("=")
appendFixedText(" = ")
}
if (isSpread) {
@@ -60,7 +60,7 @@ class AddNameToArgumentFix(argument: KtValueArgument) : KotlinQuickFixAction<KtV
override fun getText(): String {
return calculatePossibleArgumentNames()
.singleOrNull()
?.let { "Add name to argument: '${createArgumentWithName(it).text}'" }
?.let { "Add name to argument: '${createArgumentWithName(it, reformat = false).text}'" }
?: "Add name to argument..."
}
@@ -92,9 +92,9 @@ class AddNameToArgumentFix(argument: KtValueArgument) : KotlinQuickFixAction<KtV
}
}
private fun createArgumentWithName(name: Name): KtValueArgument {
private fun createArgumentWithName(name: Name, reformat: Boolean = true): KtValueArgument {
val argumentExpression = element!!.getArgumentExpression()!!
return KtPsiFactory(element!!).createArgument(argumentExpression, name, element!!.getSpreadElement() != null)
return KtPsiFactory(element!!).createArgument(argumentExpression, name, element!!.getSpreadElement() != null, reformat = reformat)
}
private fun chooseNameAndAdd(project: Project, editor: Editor, names: List<Name>) {