in src/main/java/lt/martynassateika/idea/codeigniter/model/ModelReferenceContributor.java [42:65]
public void registerReferenceProviders(@NotNull PsiReferenceRegistrar registrar) {
registrar.registerReferenceProvider(PlatformPatterns.psiElement(),
new PsiReferenceProvider() {
@NotNull
@Override
public PsiReference[] getReferencesByElement(@NotNull PsiElement psiElement,
@NotNull ProcessingContext processingContext) {
Project project = psiElement.getProject();
if (CodeIgniterProjectSettings.getInstance(project).isEnabled()) {
if (psiElement instanceof StringLiteralExpression) {
if (CiModelUtil.isArgumentOfLoadModel(psiElement, 0)) {
StringLiteralExpression stringLiteralExpression = (StringLiteralExpression) psiElement;
String relativePath = StringUtil.unquoteString(stringLiteralExpression.getText());
return CiModelUtil.findModelFiles(relativePath, project)
.stream()
.map(file -> new MyPsiReference(file, stringLiteralExpression))
.toArray(PsiReference[]::new);
}
}
}
return PsiReference.EMPTY_ARRAY;
}
});
}