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)
}
}