@Nullable public static Icon getIcon(@NotNull ErlangFile file) { if (!file.isValid()) return null; VirtualFile virtualFile = file.getViewProvider().getVirtualFile(); FileType fileType = virtualFile.getFileType(); if (ErlangFileType.MODULE == fileType) { ErlangModule module = file.getModule(); boolean isEunit = module != null && ErlangPsiImplUtil.isEunitTestFile(file); return isEunit ? ErlangIcons.EUNIT : getModuleType(file).icon; } return fileType.getIcon(); }
@NotNull public static ModuleType getModuleType(@NotNull ErlangFile file) { ModuleType type = ModuleType.REGULAR; for (ErlangBehaviour behaviour : file.getBehaviours()) { type = ModuleType.getType(behaviour.getName()); if (type != ModuleType.REGULAR) break; } return type; }