Skip to content

Commit 5af3a0d

Browse files
committed
refactor(provider): update lookupCallee to return PsiNamedElement #308
Changed the return type of `lookupCallee` from `List<PsiElement>` to `List<PsiNamedElement>` across multiple providers. This ensures consistency and better type safety when handling named elements in the call hierarchy.
1 parent 55ad595 commit 5af3a0d

File tree

5 files changed

+9
-6
lines changed

5 files changed

+9
-6
lines changed

core/src/main/kotlin/cc/unitmesh/devti/provider/RelatedClassesProvider.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.intellij.lang.LanguageExtension
55
import com.intellij.openapi.project.Project
66
import com.intellij.psi.PsiElement
77
import com.intellij.psi.PsiFile
8+
import com.intellij.psi.PsiNamedElement
89

910
/**
1011
* The `RelatedClassesProvider` interface is used to provide related classes for a given element.
@@ -28,10 +29,10 @@ interface RelatedClassesProvider {
2829
*/
2930
fun lookupIO(element: PsiElement): List<PsiElement>
3031

31-
fun lookupCallee(project: Project, element: PsiElement): List<PsiElement> = emptyList()
32-
3332
fun lookupIO(element: PsiFile): List<PsiElement>
3433

34+
fun lookupCallee(project: Project, element: PsiElement): List<PsiNamedElement> = emptyList()
35+
3536
companion object {
3637
private val languageExtension: LanguageExtension<RelatedClassesProvider> =
3738
LanguageExtension("cc.unitmesh.relatedClassProvider")
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
从 API 调用链来进行分析
1+
从 API 调用链来进行分析,默认 depth = 2(不可修改),即 Controller 到 Repository 的调用链
22
/knowledge:GET#/api/blog/* [注:这里 * 代表 blog slug,等同于 SpringMVC 的 @PathVariable]
33
从 Controller 到 Repository 的调用链
44
/knowledge:BlogController#getBlogBySlug

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class JavaRelatedClassesProvider : RelatedClassesProvider {
2727
}
2828
}
2929

30-
override fun lookupCallee(project: Project, element: PsiElement): List<PsiElement> {
30+
override fun lookupCallee(project: Project, element: PsiElement): List<PsiNamedElement> {
3131
return when (element) {
3232
is PsiMethod -> findCallees(project, element)
3333
else -> emptyList()

javascript/src/main/kotlin/cc/unitmesh/ide/javascript/provider/JavaScriptRelatedClassProvider.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import com.intellij.lang.javascript.psi.JSRecursiveWalkingElementVisitor
88
import com.intellij.openapi.project.Project
99
import com.intellij.psi.PsiElement
1010
import com.intellij.psi.PsiFile
11+
import com.intellij.psi.PsiNamedElement
1112

1213
class JavaScriptRelatedClassProvider : RelatedClassesProvider {
1314
override fun lookupIO(element: PsiElement): List<PsiElement> = JSTypeResolver.resolveByElement(element)
@@ -16,7 +17,7 @@ class JavaScriptRelatedClassProvider : RelatedClassesProvider {
1617
override fun lookupCallee(
1718
project: Project,
1819
element: PsiElement
19-
): List<PsiElement> {
20+
): List<PsiNamedElement> {
2021
return when (element) {
2122
is JSFunction -> findCallees(project, element)
2223
else -> emptyList()

kotlin/src/main/kotlin/cc/unitmesh/kotlin/provider/KotlinRelatedClassesProvider.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import cc.unitmesh.kotlin.util.KotlinTypeResolver
55
import com.intellij.openapi.project.Project
66
import com.intellij.psi.PsiElement
77
import com.intellij.psi.PsiFile
8+
import com.intellij.psi.PsiNamedElement
89
import org.jetbrains.kotlin.idea.structuralsearch.visitor.KotlinRecursiveElementWalkingVisitor
910
import org.jetbrains.kotlin.psi.KtCallExpression
1011
import org.jetbrains.kotlin.psi.KtNamedFunction
@@ -18,7 +19,7 @@ class KotlinRelatedClassProvider : RelatedClassesProvider {
1819
return KotlinTypeResolver.resolveByElement(element).values.filterNotNull().toList()
1920
}
2021

21-
override fun lookupCallee(project: Project, element: PsiElement): List<PsiElement> {
22+
override fun lookupCallee(project: Project, element: PsiElement): List<PsiNamedElement> {
2223
return when (element) {
2324
is KtNamedFunction -> findCallees(project, element)
2425
else -> emptyList()

0 commit comments

Comments
 (0)