override fun addCompletions()

in src/main/kotlin/com/pestphp/pest/completion/ThisFieldsCompletionProvider.kt [25:45]


    override fun addCompletions(
        parameters: CompletionParameters,
        context: ProcessingContext,
        result: CompletionResultSet
    ) {
        val fieldReference = parameters.position.parent as? FieldReference ?: return

        val variable = fieldReference.classReference as? Variable ?: return

        if (!variable.isThisVariableInPest { it.isAnyPestFunction() }) return

        return (fieldReference.containingFile).getAllBeforeThisAssignments()
            .filter { it.variable?.name !== null }
            .forEach {
                result.addElement(
                    LookupElementBuilder.create(it.variable!!.name!!)
                        .withIcon(PhpIcons.FIELD)
                        .withTypeText(it.type.toStringRelativized("\\"))
                )
            }
    }