Package jline

Class ArgumentCompletor

java.lang.Object
jline.ArgumentCompletor
All Implemented Interfaces:
Completor

public class ArgumentCompletor extends Object implements Completor
A Completor implementation that invokes a child completor using the appropriate separator argument. This can be used instead of the individual completors having to know about argument parsing semantics.

Example 1: Any argument of the command line can use file completion.

        consoleReader.addCompletor (new ArgumentCompletor (
                new FileNameCompletor ()))
  

Example 2: The first argument of the command line can be completed with any of "foo", "bar", or "baz", and remaining arguments can be completed with a file name.

        consoleReader.addCompletor (new ArgumentCompletor (
                new SimpleCompletor (new String [] { "foo", "bar", "baz"})));
        consoleReader.addCompletor (new ArgumentCompletor (
                new FileNameCompletor ()));
  

When the argument index is past the last embedded completors, the last completors is always used. To disable this behavior, have the last completor be a NullCompletor. For example:

        consoleReader.addCompletor (new ArgumentCompletor (
                new SimpleCompletor (new String [] { "foo", "bar", "baz"}),
                new SimpleCompletor (new String [] { "xxx", "yyy", "xxx"}),
                new NullCompletor
                ));
        

TODO: handle argument quoting and escape characters

Author:
Marc Prud'hommeaux
  • Constructor Details

    • ArgumentCompletor

      public ArgumentCompletor(Completor completor)
      Constuctor: create a new completor with the default argument separator of " ".
      Parameters:
      completor - the embedded completor
    • ArgumentCompletor

      public ArgumentCompletor(List completors)
      Constuctor: create a new completor with the default argument separator of " ".
      Parameters:
      completors - the List of completors to use
    • ArgumentCompletor

      public ArgumentCompletor(Completor[] completors)
      Constuctor: create a new completor with the default argument separator of " ".
      Parameters:
      completors - the embedded argument completors
    • ArgumentCompletor

      public ArgumentCompletor(Completor completor, ArgumentCompletor.ArgumentDelimiter delim)
      Constuctor: create a new completor with the specified argument delimiter.
      Parameters:
      completor - the embedded completor
      delim - the delimiter for parsing arguments
    • ArgumentCompletor

      public ArgumentCompletor(Completor[] completors, ArgumentCompletor.ArgumentDelimiter delim)
      Constuctor: create a new completor with the specified argument delimiter.
      Parameters:
      completors - the embedded completors
      delim - the delimiter for parsing arguments
  • Method Details

    • setStrict

      public void setStrict(boolean strict)
      If true, a completion at argument index N will only succeed if all the completions from 0-(N-1) also succeed.
    • getStrict

      public boolean getStrict()
      Returns whether a completion at argument index N will succees if all the completions from arguments 0-(N-1) also succeed.
    • complete

      public int complete(String buffer, int cursor, List candidates)
      Description copied from interface: Completor
      Populates candidates with a list of possible completions for the buffer. The candidates list will not be sorted before being displayed to the user: thus, the complete method should sort the List before returning.
      Specified by:
      complete in interface Completor
      Parameters:
      buffer - the buffer
      candidates - the List of candidates to populate
      Returns:
      the index of the buffer for which the completion will be relative