}
@Override
public void complete(CompleterInvocation completerData) {
CompleteOperation completeOperation =
new CompleteOperation(completerData.getAeshContext(), completerData.getGivenCompleteValue(), 0);
if (completerData.getGivenCompleteValue() == null)
new FileLister("", completerData.getAeshContext().getCurrentWorkingDirectory(), filter)
.findMatchingDirectories(completeOperation);
else
new FileLister(completerData.getGivenCompleteValue(),
completerData.getAeshContext().getCurrentWorkingDirectory(), filter)
.findMatchingDirectories(completeOperation);
if (completeOperation.getCompletionCandidates().size() > 1) {
completeOperation.removeEscapedSpacesFromCompletionCandidates();
}
completerData.setCompleterValuesTerminalString(completeOperation.getCompletionCandidates());
if (completerData.getGivenCompleteValue() != null && completerData.getCompleterValues().size() == 1) {
completerData.setAppendSpace(completeOperation.hasAppendSeparator());
}
if(completeOperation.doIgnoreOffset())
completerData.setIgnoreOffset(completeOperation.doIgnoreOffset());
}