@Override public List<String> complete(CommandSource src, CommandArgs args, CommandContext context) { return this.element.complete(src, args, context); } }
@Override public List<String> complete(CommandSource src, CommandArgs args, CommandContext context) { return this.element.complete(src, args, context); }
/** * Return tab completion results using the existing parsed arguments and * context. Primarily useful when including a subcommand in an existing * specification. * * @param source The source to parse arguments for * @param args The arguments object * @param context The context object * @return possible completions, or an empty list if none */ public List<String> complete(CommandSource source, CommandArgs args, CommandContext context) { checkNotNull(source, "source"); List<String> ret = this.args.complete(source, args, context); return ret == null ? ImmutableList.<String>of() : ImmutableList.copyOf(ret); }
@Override public List<String> complete(CommandSource src, CommandArgs args, CommandContext context) { if (!src.hasPermission(this.permission)) { return ImmutableList.of(); } return this.element.complete(src, args, context); }
@Override public List<String> complete(CommandSource src, CommandArgs args, CommandContext context) { return this.wrapped.complete(src, args, context).stream().filter(this.predicate).collect(ImmutableList.toImmutableList()); }
@Override public List<String> complete(final CommandSource src, final CommandArgs args, final CommandContext context) { return ImmutableList.copyOf(Iterables.concat(Iterables.transform(this.elements, input -> { if (input == null) { return ImmutableList.of(); } CommandArgs.Snapshot snapshot = args.getSnapshot(); List<String> ret = input.complete(src, args, context); args.applySnapshot(snapshot); return ret; }))); }
@Override public List<String> complete(CommandSource src, CommandArgs args, CommandContext context) { for (int i = 0; i < this.times; ++i) { CommandArgs.Snapshot startState = args.getSnapshot(); try { this.element.parse(src, args, context); } catch (ArgumentParseException e) { args.applySnapshot(startState); return this.element.complete(src, args, context); } } return Collections.emptyList(); }
if (args.getSnapshot().equals(state)) { completion = element.complete(src, args, context); } else { args.previous(); String res = args.peek(); completion = element.complete(src, args, context); if (!completion.contains(res)) { completion = ImmutableList.<String>builder().addAll(completion).add(res).build(); completion = element.complete(src, args, context);
return element.complete(src, args, context); List<String> elements = element.complete(src, args, context); if (!elements.contains(currentText)) { return ImmutableList.<String>builder().add(args.peek()).addAll(element.complete(src, args, context)).build(); } else { return elements; return element.complete(src, args, context);
@Override public List<String> complete(CommandSource src, CommandArgs args, CommandContext context) { Set<String> completions = Sets.newHashSet(); for (CommandElement element : elements) { CommandArgs.Snapshot state = args.getSnapshot(); try { element.parse(src, args, context); if (state.equals(args.getSnapshot())) { completions.addAll(element.complete(src, args, context)); args.applySnapshot(state); } else if (args.hasNext()) { completions.clear(); } else { args.applySnapshot(state); completions.addAll(element.complete(src, args, context)); if (!(element instanceof OptionalCommandElement)) { break; } args.applySnapshot(state); } } catch (ArgumentParseException ignored) { args.applySnapshot(state); completions.addAll(element.complete(src, args, context)); break; } } return Lists.newArrayList(completions); }
@Override public List<String> complete(CommandSource src, CommandArgs args, CommandContext context) { while (args.hasNext()) { CommandArgs.Snapshot startState = args.getSnapshot(); try { this.element.parse(src, args, context); } catch (ArgumentParseException e) { args.applySnapshot(startState); return this.element.complete(src, args, context); } } return Collections.emptyList(); }
@Test public void testTabCompletion() throws ArgumentParseException { List<SingleArg> args = InputTokenizer.quotedStrings(false).tokenize(this.input, true); CommandArgs commandArgs = new CommandArgs(this.input, args); List<String> results = this.element.complete(Mockito.mock(CommandSource.class), commandArgs, new CommandContext()); Assert.assertThat("Expected [" + String.join(", ", this.output) + "] but got [" + String.join(", ", results) + "] from arg string \"" + args.stream().map(SingleArg::getValue).collect(Collectors.joining(" ")) + "\"", results, IsIterableContainingInAnyOrder.containsInAnyOrder(this.output.stream().map(CoreMatchers::equalTo).collect(Collectors.toList()))); }
@Override public List<String> complete(CommandSource src, CommandArgs args, CommandContext context) { CommandArgs.Snapshot state = args.getSnapshot(); while (args.hasNext()) { String next = args.nextIfPresent().get(); if (next.startsWith("-")) { CommandArgs.Snapshot start = args.getSnapshot(); List<String> ret; if (next.startsWith("--")) { ret = tabCompleteLongFlag(next.substring(2), src, args, context); } else { ret = tabCompleteShortFlags(next.substring(1), src, args, context); } if (ret != null) { return ret; } args.removeArgs(start, args.getSnapshot()); } else if (this.anchorFlags) { break; } } // the modifications are intentional args.applySnapshot(state, false); // Prevent tab completion gobbling up an argument if the value parsed. if (!args.hasNext() && !args.getRaw().matches("\\s+$")) { return ImmutableList.of(); } return this.childElement != null ? childElement.complete(src, args, context) : ImmutableList.of(); }
if (this.fallbackElements != null) { CommandArgs.Snapshot state = args.getSnapshot(); completions.addAll(this.fallbackElements.complete(src, args, context)); args.applySnapshot(state);
@Override public List<String> complete(CommandSource src, CommandArgs args, CommandContext context) { return this.element.complete(src, args, context); } }
@Override public List<String> complete(CommandSource src, CommandArgs args, CommandContext context) { return this.element.complete(src, args, context); }
@Override public List<String> complete(CommandSource src, CommandArgs args, CommandContext context) { if (!src.hasPermission(this.permission)) { return ImmutableList.of(); } return this.element.complete(src, args, context); }
@Override public List<String> complete(final CommandSource src, final CommandArgs args, final CommandContext context) { return ImmutableList.copyOf(Iterables.concat(Iterables.transform(this.elements, input -> { if (input == null) { return ImmutableList.of(); } Object startState = args.getState(); List<String> ret = input.complete(src, args, context); args.setState(startState); return ret; }))); }
@Override public List<String> complete(CommandSource src, CommandArgs args, CommandContext context) { for (int i = 0; i < this.times; ++i) { Object startState = args.getState(); try { this.element.parse(src, args, context); } catch (ArgumentParseException e) { args.setState(startState); return this.element.complete(src, args, context); } } return Collections.emptyList(); }
@Override public List<String> complete(CommandSource src, CommandArgs args, CommandContext context) { while (args.hasNext()) { Object startState = args.getState(); try { this.element.parse(src, args, context); } catch (ArgumentParseException e) { args.setState(startState); return this.element.complete(src, args, context); } } return Collections.emptyList(); }