Skip to content

Commit 4a9ea9c

Browse files
committed
fix: fix test issues
1 parent d203734 commit 4a9ea9c

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

java/src/main/kotlin/cc/unitmesh/idea/provider/JavaTestContextProvider.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import com.intellij.openapi.project.Project
1010
import com.intellij.psi.PsiClass
1111
import com.intellij.psi.PsiElement
1212
import com.intellij.psi.PsiMethod
13+
import org.jetbrains.kotlin.idea.util.application.runReadAction
1314

1415
open class JavaTestContextProvider : ChatContextProvider {
1516
override fun isApplicable(project: Project, creationContext: ChatCreationContext): Boolean {
@@ -26,7 +27,7 @@ open class JavaTestContextProvider : ChatContextProvider {
2627
val isController = fileName?.let { MvcUtil.isController(it, langFileSuffix()) } ?: false
2728
val isService = fileName?.let { MvcUtil.isService(it, langFileSuffix()) } ?: false
2829

29-
val isSpringRelated = creationContext.element?.let { isSpringRelated(it) } ?: false
30+
val isSpringRelated = runReadAction { creationContext.element?.let { isSpringRelated(it) } ?: false }
3031

3132
var baseTestPrompt = """
3233
|You MUST use should_xx_xx style for test method name.

java/src/main/kotlin/cc/unitmesh/idea/service/JavaRelatedContext.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,12 @@ object JavaRelatedContext {
6363
}
6464

6565
private fun findSuperClasses(psiClass: PsiClass): List<PsiClass> {
66-
if (!isProjectContent(psiClass)) return emptyList()
67-
return generateSequence(psiClass) { it.superClass }.toList()
66+
val superClass = psiClass.superClass ?: return emptyList()
67+
if (isProjectContent(superClass)) {
68+
return listOf(psiClass.superClass!!)
69+
}
70+
71+
return emptyList()
6872
}
6973

7074
private fun canBeRemoved(member: PsiMember): Boolean {
@@ -90,7 +94,7 @@ object JavaRelatedContext {
9094
return projectContentClasses.toList()
9195
}
9296

93-
private fun isProjectContent(element: PsiElement): Boolean {
97+
fun isProjectContent(element: PsiElement): Boolean {
9498
val virtualFile = PsiUtil.getVirtualFile(element)
9599
return virtualFile == null || ProjectFileIndex.getInstance(element.project).isInContent(virtualFile)
96100
}

java/src/main/kotlin/cc/unitmesh/idea/service/JavaTypeUtil.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ object JavaTypeUtil {
4747
it.type is PsiClassReferenceType
4848
}.map {
4949
val resolve = (it.type as PsiClassReferenceType).resolve() ?: return@map null
50+
if (!JavaRelatedContext.isProjectContent(resolve)) {
51+
return@map null
52+
}
53+
5054
resolvedClasses[it.name] = JavaRelatedContext.cleanUp(resolve)
5155
}
5256

0 commit comments

Comments
 (0)