argCompleter.setStrict(false);
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); }
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);
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; }
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); }
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); }
argCompleter.setStrict(false);
argCompleter.setStrict(false);
argCompleter.setStrict(false);
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); }
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); }
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); }