Skip to content

Commit ea92e03

Browse files
committed
Refactor string utility usage for line separation and single space in SQL formatting
1 parent 691ab91 commit ea92e03

File tree

4 files changed

+21
-20
lines changed

4 files changed

+21
-20
lines changed

src/main/kotlin/org/domaframework/doma/intellij/contributor/sql/provider/SqlParameterCompletionProvider.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import org.domaframework.doma.intellij.common.util.ForDirectiveUtil
4343
import org.domaframework.doma.intellij.common.util.PluginLoggerUtil
4444
import org.domaframework.doma.intellij.common.util.SqlCompletionUtil.createMethodLookupElement
4545
import org.domaframework.doma.intellij.common.util.StringUtil
46+
import org.domaframework.doma.intellij.common.util.StringUtil.SINGLE_SPACE
4647
import org.domaframework.doma.intellij.common.validation.result.ValidationCompleteResult
4748
import org.domaframework.doma.intellij.contributor.sql.processor.SqlCompletionDirectiveBlockProcessor
4849
import org.domaframework.doma.intellij.contributor.sql.processor.SqlCompletionOtherBlockProcessor
@@ -207,7 +208,7 @@ class SqlParameterCompletionProvider : CompletionProvider<CompletionParameters>(
207208
val fqdn =
208209
StringUtil.getSqlElClassText(
209210
PsiPatternUtil
210-
.getBindSearchWord(originalFile, top, " "),
211+
.getBindSearchWord(originalFile, top, SINGLE_SPACE),
211212
)
212213
topElementType = getElementTypeByPrevSqlElClassWords(project, fqdn, topText)
213214
}

src/main/kotlin/org/domaframework/doma/intellij/formatter/processor/SqlFormatPreProcessor.kt

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ import com.intellij.psi.util.PsiTreeUtil
2828
import com.intellij.psi.util.elementType
2929
import org.domaframework.doma.intellij.common.util.InjectionSqlUtil.isInjectedSqlFile
3030
import org.domaframework.doma.intellij.common.util.PluginLoggerUtil
31-
import org.domaframework.doma.intellij.common.util.StringUtil
31+
import org.domaframework.doma.intellij.common.util.StringUtil.LINE_SEPARATE
32+
import org.domaframework.doma.intellij.common.util.StringUtil.SINGLE_SPACE
3233
import org.domaframework.doma.intellij.formatter.util.CreateQueryType
3334
import org.domaframework.doma.intellij.formatter.util.SqlKeywordUtil
3435
import org.domaframework.doma.intellij.formatter.visitor.SqlFormatVisitor
@@ -139,38 +140,37 @@ class SqlFormatPreProcessor : PreFormatProcessor {
139140
document: Document,
140141
element: PsiWhiteSpace,
141142
) {
142-
val singleSpace = " "
143143
val range = element.textRange
144144
val originalText = document.getText(range)
145145
val nextElement = element.nextSibling
146146
val nextElementText = nextElement?.let { document.getText(it.textRange) } ?: ""
147147

148148
var newText = ""
149149
if (!targetElementTypes.contains(nextElement?.elementType)) {
150-
newText = originalText.replace(originalText, singleSpace)
150+
newText = originalText.replace(originalText, SINGLE_SPACE)
151151
} else {
152152
newText =
153153
if (element.prevSibling == null) {
154154
""
155155
} else {
156156
when (nextElement.elementType) {
157157
SqlTypes.LINE_COMMENT -> {
158-
if (nextElementText.startsWith(StringUtil.LINE_SEPARATE)) {
159-
originalText.replace(originalText, singleSpace)
160-
} else if (originalText.contains(StringUtil.LINE_SEPARATE)) {
161-
originalText.replace(Regex("\\s*\\n\\s*"), StringUtil.LINE_SEPARATE)
158+
if (nextElementText.startsWith(LINE_SEPARATE)) {
159+
originalText.replace(originalText, SINGLE_SPACE)
160+
} else if (originalText.contains(LINE_SEPARATE)) {
161+
originalText.replace(Regex("\\s*\\n\\s*"), LINE_SEPARATE)
162162
} else {
163-
originalText.replace(originalText, singleSpace)
163+
originalText.replace(originalText, SINGLE_SPACE)
164164
}
165165
}
166166

167167
else -> {
168-
if (nextElementText.contains(StringUtil.LINE_SEPARATE) == true) {
169-
originalText.replace(originalText, singleSpace)
170-
} else if (originalText.contains(StringUtil.LINE_SEPARATE)) {
171-
originalText.replace(Regex("\\s*\\n\\s*"), StringUtil.LINE_SEPARATE)
168+
if (nextElementText.contains(LINE_SEPARATE) == true) {
169+
originalText.replace(originalText, SINGLE_SPACE)
170+
} else if (originalText.contains(LINE_SEPARATE)) {
171+
originalText.replace(Regex("\\s*\\n\\s*"), LINE_SEPARATE)
172172
} else {
173-
originalText.replace(originalText, StringUtil.LINE_SEPARATE)
173+
originalText.replace(originalText, LINE_SEPARATE)
174174
}
175175
}
176176
}
@@ -256,10 +256,10 @@ class SqlFormatPreProcessor : PreFormatProcessor {
256256
prevElement: PsiElement?,
257257
text: String,
258258
): String =
259-
if (prevElement?.text?.contains(StringUtil.LINE_SEPARATE) == false &&
259+
if (prevElement?.text?.contains(LINE_SEPARATE) == false &&
260260
PsiTreeUtil.prevLeaf(prevElement) != null
261261
) {
262-
"${StringUtil.LINE_SEPARATE}$text"
262+
"$LINE_SEPARATE$text"
263263
} else {
264264
text
265265
}

src/main/kotlin/org/domaframework/doma/intellij/formatter/visitor/DaoInjectionSqlVisitor.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,8 @@ import com.intellij.psi.PsiLiteralExpression
2626
import com.intellij.psi.codeStyle.CodeStyleManager
2727
import org.domaframework.doma.intellij.common.util.InjectionSqlUtil
2828
import org.domaframework.doma.intellij.common.util.StringUtil
29+
import org.domaframework.doma.intellij.common.util.StringUtil.SINGLE_SPACE
2930
import kotlin.text.isBlank
30-
import kotlin.text.isNotBlank
31-
import kotlin.text.takeWhile
3231

3332
/**
3433
* Visitor for processing and formatting SQL injections in DAO files.

src/main/kotlin/org/domaframework/doma/intellij/inspection/dao/processor/TypeCheckerProcessor.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import com.intellij.psi.PsiType
2424
import org.domaframework.doma.intellij.common.psi.PsiDaoMethod
2525
import org.domaframework.doma.intellij.common.psi.PsiTypeChecker
2626
import org.domaframework.doma.intellij.common.util.DomaClassName
27+
import org.domaframework.doma.intellij.common.util.StringUtil.SINGLE_SPACE
2728
import org.domaframework.doma.intellij.extension.getJavaClazz
2829
import org.domaframework.doma.intellij.extension.psi.getSuperType
2930
import org.domaframework.doma.intellij.extension.psi.isDomain
@@ -99,13 +100,13 @@ abstract class TypeCheckerProcessor(
99100
}
100101

101102
protected fun checkMapType(paramTypeCanonicalText: String): Boolean {
102-
val mapClassName = paramTypeCanonicalText.replace(" ", "")
103+
val mapClassName = paramTypeCanonicalText.replace(SINGLE_SPACE, "")
103104
val mapExpectedType =
104105
DomaClassName.MAP
105106
.getGenericParamCanonicalText(
106107
DomaClassName.STRING.className,
107108
DomaClassName.OBJECT.className,
108-
).replace(" ", "")
109+
).replace(SINGLE_SPACE, "")
109110
return mapClassName == mapExpectedType
110111
}
111112
}

0 commit comments

Comments
 (0)