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;
}
});
}
}
}