in src/main/java/lt/martynassateika/idea/codeigniter/view/ViewReferenceContributor.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 (CiViewUtil.isArgumentOfLoadView(psiElement, 0)) {
StringLiteralExpression stringLiteralExpression = (StringLiteralExpression) psiElement;
String relativePath = StringUtil.unquoteString(stringLiteralExpression.getText());
return CiViewUtil.findViewFiles(relativePath, project)
.stream()
.map(file -> new MyPsiReference(file, stringLiteralExpression))
.toArray(PsiReference[]::new);
}
}
}
return PsiReference.EMPTY_ARRAY;
}
});
}