override fun findClassesForTest()

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
    }