Formatter: fix indent for multiline expression in string template

#KT-35359 Fixed
This commit is contained in:
Dmitry Gridin
2020-04-09 23:51:59 +07:00
parent decbe99391
commit 585177bcf7
17 changed files with 112 additions and 9 deletions
@@ -906,7 +906,17 @@ private val INDENT_RULES = arrayOf(
strategy("Indent for block content")
.within(BLOCK, CLASS_BODY, FUNCTION_LITERAL)
.notForType(RBRACE, LBRACE, BLOCK)
.set(Indent.getNormalIndent(false)),
.set(Indent.getNormalIndent()),
strategy("Indent for template content")
.within(LONG_STRING_TEMPLATE_ENTRY)
.notForType(LONG_TEMPLATE_ENTRY_START, LONG_TEMPLATE_ENTRY_END)
.set(Indent.getNormalIndent()),
strategy("No indent for braces in template")
.within(LONG_STRING_TEMPLATE_ENTRY)
.forType(LONG_TEMPLATE_ENTRY_START, LONG_TEMPLATE_ENTRY_END)
.set(Indent.getNoneIndent()),
strategy("Indent for property accessors")
.within(PROPERTY).forType(PROPERTY_ACCESSOR)
@@ -1006,7 +1016,7 @@ private val INDENT_RULES = arrayOf(
strategy("Colon of delegation list")
.within(CLASS, OBJECT_DECLARATION)
.forType(COLON)
.set(Indent.getNormalIndent(false)),
.set(Indent.getNormalIndent()),
strategy("Delegation list")
.within(SUPER_TYPE_LIST)
@@ -240,6 +240,9 @@ fun createSpacingBuilder(settings: CodeStyleSettings, builderUtil: KotlinSpacing
else
null
}
inPosition(parent = LONG_STRING_TEMPLATE_ENTRY, right = LONG_TEMPLATE_ENTRY_END).lineBreakIfLineBreakInParent(0)
inPosition(parent = LONG_STRING_TEMPLATE_ENTRY, left = LONG_TEMPLATE_ENTRY_START).lineBreakIfLineBreakInParent(0)
}
simple {
@@ -396,9 +399,6 @@ fun createSpacingBuilder(settings: CodeStyleSettings, builderUtil: KotlinSpacing
betweenInside(LPAR, DESTRUCTURING_DECLARATION, FOR).spaces(0)
betweenInside(LOOP_RANGE, RPAR, FOR).spaces(0)
after(LONG_TEMPLATE_ENTRY_START).spaces(0)
before(LONG_TEMPLATE_ENTRY_END).spaces(0)
afterInside(ANNOTATION_ENTRY, ANNOTATED_EXPRESSION).spaces(1)
before(SEMICOLON).spaces(0)