in src/org/jetbrains/r/codeInsight/libraries/RShinySupportProvider.kt [18:48]
override fun resolve(element: RPsiElement): ResolveResult? {
val (uiDefinition, serverDefinition) = getUiAndServerElements(element)
if (uiDefinition == null || serverDefinition == null) {
return null
}
val elementName = element.name
if (elementName == null) {
return null
}
if (!PsiTreeUtil.isAncestor(serverDefinition, element, true)) {
return null
}
val parent = element.parent
if (parent !is RMemberExpression) {
return null
}
val callableObject = parent.leftExpr
if (callableObject !is RIdentifierExpression) {
return null
}
val resolveProcessor = ShinyResolveProcessor(elementName)
if (callableObject.name == INPUT_OBJECT) {
processInputElements(uiDefinition, resolveProcessor)
}
if (callableObject.name == OUTPUT_OBJECT) {
processOutputElements(uiDefinition, resolveProcessor)
}
return resolveProcessor.result
}