override fun completeMembers()

in src/org/jetbrains/r/codeInsight/libraries/RShinySupportProvider.kt [50:71]


  override fun completeMembers(receiver: RPsiElement,
                               lookupElementFactory: RLookupElementFactory,
                               completionConsumer: CompletionResultSet) {
    if (receiver !is RIdentifierExpression || (receiver.name != INPUT_OBJECT && receiver.name != OUTPUT_OBJECT)) {
      return
    }
    val uiAndServerElements = getUiAndServerElements(receiver)
    val uiDefinition = uiAndServerElements.first
    val serverDefinition = uiAndServerElements.second

    if (uiDefinition == null || serverDefinition == null || !PsiTreeUtil.isAncestor(serverDefinition, receiver, true)) {
      return
    }

    val completionProcessor = ShinyCompletionProcessor(lookupElementFactory, completionConsumer)
    if (receiver.name == INPUT_OBJECT) {
      processInputElements(uiDefinition, completionProcessor)
    }
    if (receiver.name == OUTPUT_OBJECT) {
      processOutputElements(uiDefinition, completionProcessor)
    }
  }