Package jline

Class FileNameCompletor

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

public class FileNameCompletor extends Object implements Completor
A file name completor takes the buffer and issues a list of potential completions.

This completor tries to behave as similar as possible to bash's file name completion (using GNU readline) with the following exceptions:

  • Candidates that are directories will end with "/"
  • Wildcard regular expressions are not evaluated or replaced
  • The "~" character can be used to represent the user's home, but it cannot complete to other users' homes, since java does not provide any way of determining that easily

TODO

  • Handle files with spaces in them
  • Have an option for file type color highlighting
Author:
Marc Prud'hommeaux
  • Constructor Details

    • FileNameCompletor

      public FileNameCompletor()
  • Method Details

    • complete

      public int complete(String buf, 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:
      buf - the buffer
      candidates - the List of candidates to populate
      Returns:
      the index of the buffer for which the completion will be relative
    • sortFileNames

      protected void sortFileNames(List fileNames)
    • matchFiles

      public int matchFiles(String buffer, String translated, File[] entries, List candidates)
      Match the specified buffer to the array of entries and enter the matches into the list of candidates. This method can be overridden in a subclass that wants to do more sophisticated file name completion.
      Parameters:
      buffer - the untranslated buffer
      translated - the buffer with common characters replaced
      entries - the list of files to match
      candidates - the list of candidates to populate
      Returns:
      the offset of the match