in src/main/kotlin/com/pestphp/pest/features/datasets/DatasetReference.kt [26:64]
override fun multiResolve(incompleteCode: Boolean): Array<ResolveResult> {
val fileBasedIndex = FileBasedIndex.getInstance()
val datasetName = element.contents
val foundDatasets = mutableListOf<FunctionReferenceImpl>()
fileBasedIndex.getAllKeys(
key,
element.project
).forEach { key ->
fileBasedIndex.processValues(
com.pestphp.pest.features.datasets.key,
key,
null,
{ file, datasets ->
if (datasetName !in datasets) {
return@processValues true
}
// Add all shared datasets which matches
PsiManager.getInstance(element.project).findFile(file)!!
.getDatasets()
.filter { it.getPestDatasetName() == datasetName }
.forEach { foundDatasets.add(it) }
true
},
GlobalSearchScope.projectScope(element.project)
)
}
// Add all local datasets which matches
element.containingFile
.getDatasets()
.filter { it.getPestDatasetName() == datasetName }
.forEach { foundDatasets.add(it) }
return foundDatasets.map { PsiElementResolveResult(it) }
.toTypedArray()
}