final ArgumentCompleter argCompleter = new ArgumentCompleter(delim, strCompleter); argCompleter.setStrict(false); ArgumentCompleter propCompleter = new ArgumentCompleter(setCompleter, confCompleter) { @Override public int complete(String buffer, int offset, List<CharSequence> completions) {
@Override public int complete(String buffer, int offset, List<CharSequence> completions) { int ret = super.complete(buffer, offset, completions); if (completions.size() == 1) { completions.set(0, ((String)completions.get(0)).trim()); } return ret; } };
reader.addCompleter(new ArgumentCompleter(completorList));
List<Completer> completors = new LinkedList<>(); // Completes using the filesystem completors.add(new FileNameCompleter()); // Completes using random words completors.add(new StringsCompleter("--arg0", "--arg1", "command")); // Aggregate the above completors AggregateCompleter aggComp = new AggregateCompleter(completors); // Parse the buffer line and complete each token ArgumentCompleter argComp = new ArgumentCompleter(aggComp); // Don't require all completors to match argComp.setStrict(false); // Add it all together conReader.addCompleter(argComp);
ArgumentDelimiter delim = getDelimiter(); ArgumentList list = delim.delimit(buffer, cursor); int argpos = list.getArgumentPosition(); List<Completer> completers = getCompleters(); Completer completer; for (int i = 0; isStrict() && (i < argIndex); i++) { Completer sub = completers.get(i >= completers.size() ? (completers.size() - 1) : i); String[] args = list.getArguments();
@Override public Completer getCompleter() { ArrayList<Completer> completers = new ArrayList<Completer>(); completers.add(new FileSystemNameCompleter(env, true)); completers.add(new FileSystemNameCompleter(env, false)); ArgumentCompleter completer = new ArgumentCompleter(completers); return completer; }
ArgumentDelimiter delim = getDelimiter(); ArgumentList list = delim.delimit(buffer, cursor); int argpos = list.getArgumentPosition(); List<Completer> completers = getCompleters(); Completer completer; for (int i = 0; isStrict() && (i < argIndex); i++) { Completer sub = completers.get(i >= completers.size() ? (completers.size() - 1) : i); String[] args = list.getArguments();
public ArgumentCompleter getArgumentCompleter() { List<String> cmds = new ArrayList<>(Arrays.asList(getAliases())); cmds.add(getCommand()); return new ArgumentCompleter(new StringsCompleter(cmds.toArray(new String[cmds.size()])), NullCompleter.INSTANCE); }
void setCompletions(boolean skipmeta) throws SQLException, IOException { final String extraNameCharacters = getDatabaseMetaData() == null || getDatabaseMetaData().getExtraNameCharacters() == null ? "" : getDatabaseMetaData().getExtraNameCharacters(); // setup the completer for the database sqlCompleter = new ArgumentCompleter( new ArgumentCompleter.AbstractArgumentDelimiter() { // delimiters for SQL statements are any // non-letter-or-number characters, except // underscore and characters that are specified // by the database to be valid name identifiers. @Override public boolean isDelimiterChar(CharSequence buffer, int pos) { char c = buffer.charAt(pos); if (Character.isWhitespace(c)) { return true; } return !(Character.isLetterOrDigit(c)) && c != '_' && extraNameCharacters.indexOf(c) == -1; } }, new SQLCompleter(SQLCompleter.getSQLCompleters(beeLine, skipmeta))); // not all argument elements need to hold true ((ArgumentCompleter) sqlCompleter).setStrict(false); }
@Override public int complete (String buffer, int offset, List completions) { List<String> comp = completions; int ret = argCompleter.complete(buffer, offset, completions); // ConsoleReader will do the substitution if and only if there // is exactly one valid completion, so we ignore other cases. if (completions.size() == 1) { if (comp.get(0).endsWith("( ")) { comp.set(0, comp.get(0).trim()); } } return ret; } };
void initAutoCompletion() { LinkedList<Completer> completors = new LinkedList<Completer>(); completors.add(new StringsCompleter(cmdMap.keySet())); completors.add(new StringsCompleter(fieldNames())); completors.add(new FileNameCompleter()); consoleReader.addCompleter(new ArgumentCompleter(completors)); } Collection<String> fieldNames() {
private Completer getCommandCompleter() { List<Completer> customCompletor = new ArrayList<Completer>(); Set<String> candidateStrings = new HashSet<String>(); try { for (String key : CommandParserUtils.getAllCommandKewWords()) { candidateStrings.add(key.toUpperCase()); candidateStrings.add(key.toLowerCase()); } } catch (AssertionError e) { return null; } if (!candidateStrings.isEmpty()) { // odps key word completer, use default whitespace for arg delimiter ArgumentCompleter keyCompleter = new ArgumentCompleter(new StringsCompleter(candidateStrings)); keyCompleter.setStrict(false); customCompletor.add(keyCompleter); } // file patch completer, use default whitespace for arg delimiter ArgumentCompleter pathCompleter = new ArgumentCompleter(new FileNameCompleter()); pathCompleter.setStrict(false); customCompletor.add(pathCompleter); // aggregate two argument comepletor AggregateCompleter aggregateCompleter = new AggregateCompleter(customCompletor); return aggregateCompleter; }
@Override public int complete(String buffer, int offset, List<CharSequence> completions) { int ret = super.complete(buffer, offset, completions); if (completions.size() == 1) { completions.set(0, ((String)completions.get(0)).trim()); } return ret; } };
@Override public ArgumentCompleter getArgumentCompleter() { List<String> cmds = new ArrayList<>(Arrays.asList(getAliases())); cmds.add(getCommand()); return new ArgumentCompleter( new StringsCompleter(cmds.toArray(new String[cmds.size()])), new StringsCompleter("copyright", "version", "?", "help", "q", "l", "c", "d", "df", "!", "dfs", "admin", "set", "unset", "haadmin", "getconf"), // same order as help string NullCompleter.INSTANCE); } }
public CommandCompleter(ConsoleReader consoleReader, ArgumentDelimiter argumentDelimiter, Iterable<Command> commands) { this.console = consoleReader; List<String> names = new ArrayList<>(); for (Command command : commands) { this.commands.add(command); names.add(command.getName()); List<String> options = new ArrayList<>(); for (OptionHelp optionHelp : command.getOptionsHelp()) { options.addAll(optionHelp.getOptions()); } AggregateCompleter argumentCompleters = new AggregateCompleter( new StringsCompleter(options), new FileNameCompleter()); ArgumentCompleter argumentCompleter = new ArgumentCompleter(argumentDelimiter, argumentCompleters); argumentCompleter.setStrict(false); this.commandCompleters.put(command.getName(), argumentCompleter); } getStrings().addAll(names); }
@Override public int complete(String buffer, int offset, List<CharSequence> completions) { int ret = super.complete(buffer, offset, completions); if (completions.size() == 1) { completions.set(0, ((String)completions.get(0)).trim()); } return ret; } };
@Override public ArgumentCompleter getArgumentCompleter() { TajoConf.ConfVars[] vars = TajoConf.ConfVars.values(); List<String> confNames = new ArrayList<>(); for(TajoConf.ConfVars varname: vars) { confNames.add(varname.varname); } return new ArgumentCompleter( new StringsCompleter(getCommand()), new ConfCompleter(confNames.toArray(new String[confNames.size()])), NullCompleter.INSTANCE); }
public CommandCompleter(ConsoleReader consoleReader, ArgumentDelimiter argumentDelimiter, Iterable<Command> commands) { this.console = consoleReader; List<String> names = new ArrayList<String>(); for (Command command : commands) { this.commands.add(command); names.add(command.getName()); List<String> options = new ArrayList<String>(); for (OptionHelp optionHelp : command.getOptionsHelp()) { options.addAll(optionHelp.getOptions()); } AggregateCompleter arguementCompleters = new AggregateCompleter( new StringsCompleter(options), new FileNameCompleter()); ArgumentCompleter argumentCompleter = new ArgumentCompleter( argumentDelimiter, arguementCompleters); argumentCompleter.setStrict(false); this.commandCompleters.put(command.getName(), argumentCompleter); } getStrings().addAll(names); }
@Override public int complete(String buffer, int offset, List<CharSequence> completions) { int ret = super.complete(buffer, offset, completions); if (completions.size() == 1) { completions.set(0, ((String)completions.get(0)).trim()); } return ret; } };
@Override public Iterable<Completer> getCompleters() { return ImmutableList.<Completer>of(new ArgumentCompleter( new StringsCompleter("hash"), new StringsCompleter("md5", "sha1", "bcrypt", "md5+bcrypt", "sha1+bcrypt"))); }