Skip to content

Commit 34fcfe8

Browse files
committed
Refactor function resolution logic and improve SQL validation reporting
1 parent c9133fc commit 34fcfe8

File tree

4 files changed

+22
-19
lines changed

4 files changed

+22
-19
lines changed

src/main/kotlin/org/domaframework/doma/intellij/common/sql/directive/collector/StaticBuildFunctionCollector.kt

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,8 @@ import com.intellij.openapi.project.Project
2121
import com.intellij.psi.PsiMethod
2222
import com.intellij.psi.PsiModifier
2323
import org.domaframework.doma.intellij.common.helper.ExpressionFunctionsHelper
24-
import org.domaframework.doma.intellij.common.psi.PsiParentClass
2524
import org.domaframework.doma.intellij.extension.getJavaClazz
26-
import org.domaframework.doma.intellij.extension.psi.psiClassType
2725
import org.domaframework.doma.intellij.setting.state.DomaToolsCustomFunctionSettings
28-
import kotlin.collections.mutableSetOf
2926

3027
class StaticBuildFunctionCollector(
3128
private val project: Project,
@@ -46,14 +43,12 @@ class StaticBuildFunctionCollector(
4643
if (expressionClazz != null &&
4744
ExpressionFunctionsHelper.isInheritor(expressionClazz)
4845
) {
49-
val psiParent = PsiParentClass(expressionClazz.psiClassType)
50-
psiParent.searchMethod("")?.let { methods ->
51-
functions.addAll(
52-
methods.filter {
53-
isPublicFunction(it)
54-
},
55-
)
56-
}
46+
val methods = expressionClazz.allMethods
47+
functions.addAll(
48+
methods.filter {
49+
isPublicFunction(it)
50+
},
51+
)
5752
}
5853
}
5954

src/main/kotlin/org/domaframework/doma/intellij/common/sql/validator/result/ValidationInvalidFunctionCallResult.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import org.domaframework.doma.intellij.bundle.MessageBundle
2323
import org.domaframework.doma.intellij.common.psi.PsiParentClass
2424

2525
/**
26-
* Non-existent package name or class
26+
* Reports invalid function calls in SQL validation.
2727
*/
2828
open class ValidationInvalidFunctionCallResult(
2929
override val identify: PsiElement,

src/main/kotlin/org/domaframework/doma/intellij/formatter/SqlPostProcessor.kt

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,16 @@ class SqlPostProcessor : PostFormatProcessor {
6060
}
6161
return TextRange(0, finalText.length)
6262
}
63+
}
6364

64-
private fun isEnableFormat(project: Project): Boolean {
65-
val setting = DomaToolsFormatEnableSettings.getInstance(project)
66-
val isEnableFormat = setting.state.isEnableSqlFormat
67-
return isEnableFormat
68-
}
65+
/**
66+
* Checks if SQL formatting is enabled in the project settings.
67+
*
68+
* @param project The project to check.
69+
* @return `true` if SQL formatting is enabled, `false` otherwise.
70+
*/
71+
fun isEnableFormat(project: Project): Boolean {
72+
val setting = DomaToolsFormatEnableSettings.getInstance(project)
73+
val isEnableFormat = setting.state.isEnableSqlFormat
74+
return isEnableFormat
6975
}

src/main/kotlin/org/domaframework/doma/intellij/inspection/sql/processor/InspectionFunctionCallVisitorProcessor.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,14 @@ class InspectionFunctionCallVisitorProcessor(
3737
val customFunctionClassNames = expressionFunctionSetting.state.customFunctionClassNames
3838

3939
var methods: Array<out PsiMethod?> = emptyArray()
40-
customFunctionClassNames.takeWhile { clazz ->
40+
for (clazz in customFunctionClassNames) {
4141
val expressionClazz = project.getJavaClazz(clazz)
4242
if (expressionClazz != null && expressionHelper.isInheritor(expressionClazz)) {
4343
methods = expressionClazz.findMethodsByName(functionName.text, true)
44+
if (methods.isNotEmpty()) {
45+
break
46+
}
4447
}
45-
methods.isEmpty()
4648
}
4749

4850
if (methods.isEmpty()) {

0 commit comments

Comments
 (0)