public List<String> complete(CompletionKind kind, String start, int detailLevel) {
		List<String> results = new ArrayList<String>();

		String name = "__dummy";
		List<ModuleDescriptor> parsed = null;
		try {
			parsed = parser.parse(name, start, toParsingContext(kind));
		}
		catch (Exception recoverable) {
			for (CompletionRecoveryStrategy<Exception> strategy : completionRecoveryStrategies) {
				if (strategy.shouldTrigger(start, recoverable, kind)) {
					strategy.addProposals(start, recoverable, kind, detailLevel, results);
				}
			}

			return results;
		}

		for (CompletionExpansionStrategy strategy : completionExpansionStrategies) {
			if (strategy.shouldTrigger(start, parsed, kind)) {
				strategy.addProposals(start, parsed, kind, detailLevel, results);
			}
		}
		return results;
	}
Construct a new CompletionProvider given a list of recovery strategies and expansion strategies.

@param parser the parser used to parse the text the partial module definition.
@param completionRecoveryStrategies list of strategies to apply when an exception was thrown during parsing.
@param completionExpansionStrategies list of strategies to apply for adding additional module options completion
       suggestions.
spring-xd-dirt/src/main/java/org/springframework/xd/dirt/stream/completion/CompletionProvider.java