in src/main/java/lt/martynassateika/idea/codeigniter/model/ModelCompletionProvider.java [57:91]
protected void addCompletions(@NotNull CompletionParameters completionParameters,
@NotNull ProcessingContext processingContext, @NotNull CompletionResultSet resultSet) {
PsiElement originalPosition = completionParameters.getOriginalPosition();
if (originalPosition != null) {
Project project = originalPosition.getProject();
if (CodeIgniterProjectSettings.getInstance(project).isEnabled()) {
if (isModelNameElement(originalPosition)) {
List<PsiFileSystemItem> modelDirectories = CiModelUtil.getModelDirectories(project);
for (PsiFileSystemItem modelDirectory : modelDirectories) {
VirtualFile directoryVirtualFile = modelDirectory.getVirtualFile();
VirtualFile applicationDirectory = directoryVirtualFile.getParent();
VfsUtil
.visitChildrenRecursively(directoryVirtualFile, new VirtualFileVisitor<Object>() {
@Override
public boolean visitFile(@NotNull VirtualFile file) {
if (file.getFileType() == PhpFileType.INSTANCE) {
String relativePath = VfsUtilCompat
.findRelativePath(directoryVirtualFile, file, '/');
if (StringUtil.isNotEmpty(relativePath)) {
Icon icon = file.getFileType().getIcon();
resultSet.addElement(new BasicFileLookupElement(
PhpExtensionUtil.removeIfPresent(relativePath.toLowerCase()),
applicationDirectory,
icon
));
}
}
return true;
}
});
}
}
}
}
}