in src/main/kotlin/com/pestphp/pest/goto/PestTestFinder.kt [26:45]
override fun findClassesForTest(element: PsiElement): Collection<PsiElement> {
val classes = PhpIndex.getInstance(element.project)
.getClassesByNameInScope(
element.containingFile.name.removeSuffix("Test.php"),
GlobalSearchScope.projectScope(element.project)
)
val testName = PsiTreeUtil.getNonStrictParentOfType(element, FunctionReference::class.java)
?.getPestTestName()
?.split(" ")
?.joinToString("")
?: return classes
val methodsAndProximityScores = classes.flatMap { phpClass -> phpClass.ownMethods.toList() }
.filter { method -> testName.contains(method.name, ignoreCase = true) }
.map { method -> Pair(method, TestFinderHelper.calcTestNameProximity(method.name, testName)) }
return if (!methodsAndProximityScores.isEmpty())
TestFinderHelper.getSortedElements(methodsAndProximityScores, true)
else
classes
}