@Override public List<TerminalString> getCompleterValues() { return delegate.getCompleterValues(); }
@Override public List<TerminalString> getCompleterValues() { return delegate.getCompleterValues(); }
@Override public List<TerminalString> getCompleterValues() { return delegate.getCompleterValues(); }
private void completeDataWithValues(CompleterInvocation completerData) { if(completerData.getCompleterValues().size() == 1 && completerData.getCompleterValues().get(0).containSpaces()) { String tmpData = Parser.switchSpacesToEscapedSpacesInWord( completerData.getCompleterValues().get(0).getCharacters()); completerData.clearCompleterValues(); completerData.addCompleterValue(tmpData); completerData.setAppendSpace(true); } } }
&& completions.getCompleterValues().size() == 1) { numberSpaces = Parser. findNumberOfSpacesInWord(value.substring(value.length() - completions.getOffset(), value.length())); if (completions.getCompleterValues().size() == 1) { completeOperation.doAppendSeparator(completions.isAppendSpace()); if(currentOption != null)
lines.get(i).selectedWord().word(), null); completer.complete(invocation); completeOperation.addCompletionCandidatesTerminalString(invocation.getCompleterValues()); AeshCommandLineCompletionParser.verifyCompleteValue(completeOperation, invocation,
@Override public void complete(CompleterInvocation completerData) { Grep grep = (Grep) completerData.getCommand(); //the first argument is the pattern, do not autocomplete if (grep.getArguments() != null && grep.getArguments().size() > 0) { CompleteOperation completeOperation = new AeshCompleteOperation(completerData.getAeshContext(), completerData.getGivenCompleteValue(), 0); List<String> candidates = new ArrayList<>(); if (completerData.getGivenCompleteValue() == null) { new FileLister("", completerData.getAeshContext().getCurrentWorkingDirectory()). findMatchingDirectories(candidates); completeOperation.addCompletionCandidates(candidates); } else { int offset = new FileLister(completerData.getGivenCompleteValue(), completerData.getAeshContext().getCurrentWorkingDirectory()). findMatchingDirectories(candidates); completeOperation.addCompletionCandidates(candidates); completeOperation.setOffset(completerData.getGivenCompleteValue().length() - offset); } if (completeOperation.getCompletionCandidates().size() > 1) { completeOperation.removeEscapedSpacesFromCompletionCandidates(); } completerData.setCompleterValuesTerminalString(completeOperation.getCompletionCandidates()); completerData.setOffset(completeOperation.getOffset()); if (completerData.getGivenCompleteValue() != null && completerData.getCompleterValues().size() == 1) { completerData.setAppendSpace(completeOperation.hasAppendSeparator()); } } } }
private boolean doCompleteOptionValue(InvocationProviders invocationProviders, AeshCompleteOperation completeOperation, ProcessedOption currentOption, ParsedWord.Status selectedWordStatus) { String value = currentOption.getLastValue(); //if value is null or ends with a separator if(value == null || currentOption.getEndsWithSeparator()) value = ""; if(currentOption.completer() != null && currentOption.hasValue() && currentOption.activator().isActivated(new ParsedCommand(parser.getProcessedCommand()))) { CompleterInvocation completions = invocationProviders.getCompleterProvider().enhanceCompleterInvocation( new CompleterData(completeOperation.getContext(), value, parser.getCommand())); currentOption.completer().complete(completions); completeOperation.addCompletionCandidatesTerminalString(completions.getCompleterValues()); verifyCompleteValue(completeOperation, completions, value, selectedWordStatus, currentOption); } //only try to complete default values if completer is null else if(currentOption.getDefaultValues().size() > 0) { CompleterInvocation completions = invocationProviders.getCompleterProvider().enhanceCompleterInvocation( new CompleterData(completeOperation.getContext(), value, parser.getCommand())); new DefaultValueOptionCompleter(currentOption.getDefaultValues()).complete(completions); completeOperation.addCompletionCandidatesTerminalString(completions.getCompleterValues()); verifyCompleteValue(completeOperation, completions, value, selectedWordStatus, currentOption); } else if(!currentOption.hasValue()) { completeOperation.doAppendSeparator(true); } return completeOperation.getCompletionCandidates().size() > 0; }