Skip to content

Commit

Permalink
Add basic spacing rules for formatter
Browse files Browse the repository at this point in the history
  • Loading branch information
Exidex committed Oct 12, 2022
1 parent 8bbe4b5 commit 5c0b677
Show file tree
Hide file tree
Showing 12 changed files with 41 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package dev.kdl.lang.formatter
import com.intellij.formatting.*
import com.intellij.psi.codeStyle.CodeStyleSettings
import dev.kdl.lang.KdlLanguage
import dev.kdl.lang.psi.ext.KdlElementTypes.IDENTIFIER
import dev.kdl.lang.psi.ext.KdlElementTypes.*

class KdlFormattingModelBuilder : FormattingModelBuilder {
override fun createModel(formattingContext: FormattingContext): FormattingModel {
Expand All @@ -22,6 +22,10 @@ class KdlFormattingModelBuilder : FormattingModelBuilder {

private fun createSpaceBuilder(settings: CodeStyleSettings): SpacingBuilder {
return SpacingBuilder(settings, KdlLanguage)
.after(IDENTIFIER).spaces(1)
.afterInside(IDENTIFIER, NODE_BLOCK).spaces(1)
.beforeInside(NODE_CHILDREN, NODE_BLOCK).spaces(1)
.betweenInside(TYPE, LITERAL, VALUE).none()
.withinPairInside(L_PAREN, R_PAREN, TYPE).none()
.aroundInside(EQ, PROP).none()
}
}
5 changes: 5 additions & 0 deletions src/test/kotlin/dev/kdl/lang/formatter/KdlFormatterTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,9 @@ class KdlFormatterTest : FormatterTestCase() {

fun test1() = doTest()
fun test2() = doTest()
fun testAfterNodeName() = doTest()
fun testAroundPropEq() = doTest()
fun testBeforeChildrenBlock() = doTest()
fun testBetweenTypeAndLiteral() = doTest()
fun testInsideType() = doTest()
}
3 changes: 3 additions & 0 deletions src/test/testData/formatter/afterNodeName.kdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node {
node{}
}
3 changes: 3 additions & 0 deletions src/test/testData/formatter/afterNodeName_after.kdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node {
node {}
}
3 changes: 3 additions & 0 deletions src/test/testData/formatter/aroundPropEq.kdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node {
node prop = "val"
}
3 changes: 3 additions & 0 deletions src/test/testData/formatter/aroundPropEq_after.kdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node {
node prop="val"
}
3 changes: 3 additions & 0 deletions src/test/testData/formatter/beforeChildrenBlock.kdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node {
node "arg"{}
}
3 changes: 3 additions & 0 deletions src/test/testData/formatter/beforeChildrenBlock_after.kdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node {
node "arg" {}
}
3 changes: 3 additions & 0 deletions src/test/testData/formatter/betweenTypeAndLiteral.kdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node {
node (type) "arg"
}
3 changes: 3 additions & 0 deletions src/test/testData/formatter/betweenTypeAndLiteral_after.kdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node {
node (type)"arg"
}
3 changes: 3 additions & 0 deletions src/test/testData/formatter/insideType.kdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node {
node ( type )"arg"
}
3 changes: 3 additions & 0 deletions src/test/testData/formatter/insideType_after.kdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node {
node (type)"arg"
}

0 comments on commit 5c0b677

Please sign in to comment.