public void registerReferenceProviders()

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