@Override public void addProposals( String text, List<ModuleDescriptor> parseResult, CompletionKind kind, int detailLevel, List<String> proposals) { // List is in reverse order ModuleDescriptor lastModule = parseResult.get(0); String lastModuleName = lastModule.getModuleName(); ModuleType lastModuleType = lastModule.getType(); ModuleDefinition lastModuleDefinition = moduleDefinitionRepository.findByNameAndType(lastModuleName, lastModuleType); Set<String> alreadyPresentOptions = new HashSet<String>(lastModule.getParameters().keySet()); for (ModuleOption option : moduleOptionsMetadataResolver.resolve(lastModuleDefinition)) { if (shouldShowOption(option, detailLevel) && !alreadyPresentOptions.contains(option.getName())) { proposals.add( String.format("%s%s--%s=", text, text.endsWith(" ") ? "" : " ", option.getName())); } } }