in src/main/kotlin/com/pestphp/pest/completion/ThisFieldsCompletionProvider.kt [47:67]
override fun getGotoDeclarationTargets(
sourceElement: PsiElement?,
offset: Int,
editor: Editor?
): Array<PsiElement> {
if (sourceElement?.elementType != PhpTokenTypes.IDENTIFIER) {
return PsiElement.EMPTY_ARRAY
}
val fieldReference = sourceElement?.parent as? FieldReference
?: return PsiElement.EMPTY_ARRAY
if (fieldReference.classReference?.isThisVariableInPest { it.isAnyPestFunction() } != true) {
return PsiElement.EMPTY_ARRAY
}
return (fieldReference.containingFile ?: return PsiElement.EMPTY_ARRAY).getAllBeforeThisAssignments()
.filter { it.variable?.name == fieldReference.name }
.mapNotNull { it.variable }
.toTypedArray()
}