Skip to content

Commit e704a75

Browse files
committed
Refactor SQL block classes to improve type handling and enhance readability
1 parent 96253f7 commit e704a75

File tree

2 files changed

+42
-38
lines changed

2 files changed

+42
-38
lines changed

src/main/kotlin/org/domaframework/doma/intellij/formatter/block/SqlCommaBlock.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ open class SqlCommaBlock(
5050
context.formatMode,
5151
) {
5252
companion object {
53-
private val expectedTypes =
53+
private val EXPECTED_TYPES =
5454
listOf(
5555
SqlInsertColumnGroupBlock::class,
5656
SqlInsertValueGroupBlock::class,
@@ -141,6 +141,6 @@ open class SqlCommaBlock(
141141

142142
override fun isSaveSpace(lastGroup: SqlBlock?): Boolean {
143143
if (parentBlock is SqlConditionalExpressionGroupBlock) return false
144-
return TypeUtil.isExpectedClassType(expectedTypes, parentBlock)
144+
return TypeUtil.isExpectedClassType(EXPECTED_TYPES, parentBlock)
145145
}
146146
}

src/main/kotlin/org/domaframework/doma/intellij/formatter/block/SqlRightPatternBlock.kt

Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -52,20 +52,48 @@ open class SqlRightPatternBlock(
5252
) {
5353
var preSpaceRight = false
5454

55+
companion object {
56+
private val NOT_INSERT_SPACE_TYPES =
57+
listOf(
58+
SqlFunctionParamBlock::class,
59+
SqlInsertColumnGroupBlock::class,
60+
SqlWithQuerySubGroupBlock::class,
61+
SqlConflictExpressionSubGroupBlock::class,
62+
)
63+
64+
private val INDENT_EXPECTED_TYPES =
65+
listOf(
66+
SqlUpdateColumnGroupBlock::class,
67+
SqlUpdateValueGroupBlock::class,
68+
SqlCreateTableColumnDefinitionGroupBlock::class,
69+
)
70+
71+
private val NEW_LINE_EXPECTED_TYPES =
72+
listOf(
73+
SqlUpdateColumnGroupBlock::class,
74+
SqlUpdateValueGroupBlock::class,
75+
SqlCreateTableColumnDefinitionGroupBlock::class,
76+
SqlColumnDefinitionRawGroupBlock::class,
77+
SqlUpdateSetGroupBlock::class,
78+
SqlWithQuerySubGroupBlock::class,
79+
)
80+
81+
private val NEW_LINE_EXCLUDE_TYPES =
82+
listOf(
83+
SqlDataTypeParamBlock::class,
84+
SqlConditionalExpressionGroupBlock::class,
85+
SqlConflictExpressionSubGroupBlock::class,
86+
SqlFunctionParamBlock::class,
87+
)
88+
}
89+
5590
/**
5691
* Configures whether to add a space to the right side when the group ends.
5792
*/
5893
private fun enableLastRight() {
5994
parentBlock?.let { parent ->
6095
// Check if parent is in the notInsertSpaceClassList
61-
val notInsertSpaceClassList =
62-
listOf(
63-
SqlFunctionParamBlock::class,
64-
SqlInsertColumnGroupBlock::class,
65-
SqlWithQuerySubGroupBlock::class,
66-
SqlConflictExpressionSubGroupBlock::class,
67-
)
68-
if (isExpectedClassType(notInsertSpaceClassList, parent)) {
96+
if (isExpectedClassType(NOT_INSERT_SPACE_TYPES, parent)) {
6997
preSpaceRight = false
7098
return
7199
}
@@ -118,13 +146,7 @@ open class SqlRightPatternBlock(
118146

119147
parentBlock?.let { parent ->
120148
if (parent is SqlWithQuerySubGroupBlock) return 0
121-
val exceptionalTypes =
122-
listOf(
123-
SqlUpdateColumnGroupBlock::class,
124-
SqlUpdateValueGroupBlock::class,
125-
SqlCreateTableColumnDefinitionGroupBlock::class,
126-
)
127-
if (isExpectedClassType(exceptionalTypes, parent)) return parent.indent.indentLen
149+
if (isExpectedClassType(INDENT_EXPECTED_TYPES, parent)) return parent.indent.indentLen
128150
return parent.indent.indentLen
129151
} ?: return 0
130152
}
@@ -135,29 +157,11 @@ open class SqlRightPatternBlock(
135157
if (preSpaceRight) return false
136158

137159
parentBlock?.let { parent ->
138-
val exceptionalTypes =
139-
listOf(
140-
SqlCreateTableColumnDefinitionGroupBlock::class,
141-
SqlColumnDefinitionRawGroupBlock::class,
142-
SqlUpdateSetGroupBlock::class,
143-
SqlUpdateColumnGroupBlock::class,
144-
SqlUpdateValueGroupBlock::class,
145-
SqlWithQuerySubGroupBlock::class,
146-
)
147-
148-
val excludeTypes =
149-
listOf(
150-
SqlDataTypeParamBlock::class,
151-
SqlConditionalExpressionGroupBlock::class,
152-
SqlConflictExpressionSubGroupBlock::class,
153-
SqlFunctionParamBlock::class,
154-
)
155-
156160
if ((
157-
isExpectedClassType(exceptionalTypes, parent) ||
158-
isExpectedClassType(exceptionalTypes, parent.parentBlock)
161+
isExpectedClassType(NEW_LINE_EXPECTED_TYPES, parent) ||
162+
isExpectedClassType(NEW_LINE_EXPECTED_TYPES, parent.parentBlock)
159163
) &&
160-
!isExpectedClassType(excludeTypes, parent)
164+
!isExpectedClassType(NEW_LINE_EXCLUDE_TYPES, parent)
161165
) {
162166
return true
163167
}

0 commit comments

Comments
 (0)