in gdscript/src/main/kotlin/gdscript/completion/GdResourceCompletionContributor.kt [25:55]
override fun fillCompletionVariants(parameters: CompletionParameters, result: CompletionResultSet) {
val r = result.withPrefixMatcher(CamelHumpMatcher(
parameters.position.text.substring(0, parameters.offset - parameters.position.textRange.startOffset),
true,
))
val position = parameters.position
if (GdRefIdCompletionUtil.DIRECT_REF.accepts(position)) {
GdNodeUtil.listNodes(position).forEach { r.addAllElements(it.lookups()) }
} else if (NODE_PATH_ROOT.accepts(position)) {
GdNodeUtil.listNodes(position).forEach { r.addAllElements(it.variable_lookups()) }
} else if (NODE_PATH.accepts(position)) {
if (GdRefIdCompletionUtil.CLASS_ROOT.accepts(position)) {
GdNodeUtil.listNodes(position).forEach { r.addAllElements(it.variable_lookups()) }
} else {
GdNodeUtil.listNodes(position).forEach { r.addAllElements(it.lookups()) }
}
} else if (STRING.accepts(position)) {
GdFileResIndex.getNonEmptyKeys(position).forEach {
result.addElement(
GdLookup.create(
it,
priority = GdLookup.BUILT_IN,
)
)
}
GdStringCompletionUtil.addInputs(position, result)
GdStringCompletionUtil.addGroups(position, result)
GdStringCompletionUtil.addMetas(position, result)
}
}