Package jline

Class ArgumentCompletor

  • All Implemented Interfaces:
    Completor

    public class ArgumentCompletor
    extends java.lang.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 Detail

      • ArgumentCompletor

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

        public ArgumentCompletor​(java.util.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
    • Method Detail

      • 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​(java.lang.String buffer,
                            int cursor,
                            java.util.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