override fun getUseScope()

in src/main/kotlin/org/arend/psi/ext/Identifiers.kt [44:71]


    override fun getUseScope(): SearchScope {
        val parent = parent
        val pParent = parent?.parent
        if (pParent is ArendNameTele) {
            val function = pParent.parent
            var prevSibling = function.parent.prevSibling
            if (prevSibling is PsiWhiteSpace) prevSibling = prevSibling.prevSibling
            val docComment = prevSibling as? ArendDocComment
            return if (docComment != null) LocalSearchScope(arrayOf(function, docComment)) else LocalSearchScope(function)
        }

        if (parent is ArendLetClause ||
            (pParent as? ArendTypedExpr)?.parent is ArendTypeTele ||
            parent is ArendPattern ||
            parent is ArendCaseArg ||
            parent is ArendLongName) {

            getTopmostExpression(parent)?.let {
                return LocalSearchScope(it)
            }
        }

         if (parent is ArendNsId && pParent is ArendNsUsing) {
            pParent.ancestor<ArendGroup>()?.let { return@getUseScope LocalSearchScope(it) }
        }

        return super.getUseScope()
    }