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