@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 = moduleRegistry.findDefinition(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()));
			}
		}

	}
Construct a new AddModuleOptionsExpansionStrategy for use in detecting missing module options.

@param moduleRegistry the registry to check for the existence of the last entered module
       definition.
@param moduleOptionsMetadataResolver the metadata resolver to use in order to create a list of proposals for
       module options that have not yet been specified.
spring-xd-dirt/src/main/java/org/springframework/xd/dirt/stream/completion/AddModuleOptionsExpansionStrategy.java