override fun resolve()

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
  }