protected void addCompletions()

in src/main/java/lt/martynassateika/idea/codeigniter/helper/HelperCompletionProvider.java [53:87]


  protected void addCompletions(@NotNull CompletionParameters completionParameters,
      @NotNull ProcessingContext processingContext, @NotNull CompletionResultSet resultSet) {
    PsiElement originalPosition = completionParameters.getOriginalPosition();
    if (shouldShowSuggestions(originalPosition)) {
      Project project = originalPosition.getProject();
      List<PsiFileSystemItem> helperDirectories = CiHelperUtil.getHelperDirectories(project);
      for (PsiFileSystemItem helperDirectory : helperDirectories) {
        VirtualFile directoryVirtualFile = helperDirectory.getVirtualFile();
        VirtualFile applicationDirectory = directoryVirtualFile.getParent();
        VfsUtil
            .visitChildrenRecursively(directoryVirtualFile, new VirtualFileVisitor<Object>() {
              @Override
              public boolean visitFile(@NotNull VirtualFile file) {
                if (CiHelperUtil.isHelperFile(file)) {
                  String relativePath = VfsUtilCompat
                      .findRelativePath(directoryVirtualFile, file, '/');
                  if (relativePath != null) {
                    String formattedRelativePath = CiHelperUtil
                        .formatHelperPath(relativePath);
                    if (StringUtil.isNotEmpty(relativePath)) {
                      Icon icon = file.getFileType().getIcon();
                      resultSet.addElement(new BasicFileLookupElement(
                          formattedRelativePath,
                          applicationDirectory,
                          icon
                      ));
                    }
                  }
                }
                return true;
              }
            });
      }
    }
  }