public class Readline
extends java.lang.Object
A typical implementation could look like:
try { Readline.load(ReadlineLibrary.GnuReadline); } catch (UnsatisfiedLinkError ignore_me) { System.err.println("couldn't load readline lib. Using simple stdin."); } Readline.initReadline("myapp"); Runtime.getRuntime() // if your version supports .addShutdownHook(new Thread() { // addShutdownHook (since 1.3) public void run() { Readline.cleanup(); } }); while (true) { try { line = Readline.readline("myprompt> "); if (line == null) System.out.println("no input"); else processLine(); } catch (EOFException e) { break; } catch (Exception e) { doSomething(); } } Readline.cleanup(); // see note above about addShutdownHook
Constructor and Description |
---|
Readline() |
Modifier and Type | Method and Description |
---|---|
static void |
addToHistory(java.lang.String line)
Add a line to the in-memory history.
|
static void |
cleanup()
Reset the readline library and with it, the terminal.
|
static void |
clearHistory()
Clear the history buffer.
|
static ReadlineCompleter |
getCompleter()
Query current completer function.
|
static java.lang.String |
getEncoding()
Query current encoding of fallback BufferedReader.
|
static void |
getHistory(java.util.Collection collection)
Get the history buffer in a supplied Collection.
|
static java.lang.String |
getHistoryLine(int i)
Get the specified entry from the history buffer.
|
static int |
getHistorySize()
Get the size, in elements (lines), of the history buffer.
|
static java.lang.String |
getLineBuffer()
Query the current line buffer.
|
static boolean |
getThrowExceptionOnUnsupportedMethod()
Query behavior in case an unsupported method is called.
|
static java.lang.String |
getWordBreakCharacters()
Query word break characters.
|
static boolean |
hasTerminal()
Return if we have a terminal.
|
static void |
initReadline(java.lang.String applicationName)
Initialize the GNU-Readline library.
|
static void |
load(ReadlineLibrary lib)
Load an implementing backing library.
|
static boolean |
parseAndBind(java.lang.String line)
Parse argument string as if it had been read from `inputrc' file
and perform key bindings and variable assignments found.
|
static void |
readHistoryFile(java.lang.String filename)
Reads a history file into memory
|
static void |
readInitFile(java.lang.String filename)
Read keybindings and variable assignments from a file.
|
static java.lang.String |
readline(java.lang.String prompt)
Display a prompt on standard output and read a string from standard
input.
|
static java.lang.String |
readline(java.lang.String prompt,
boolean addToHist)
Display a prompt on standard output and read a string from
standard input.
|
static void |
setCompleter(ReadlineCompleter rlc)
Set your completer implementation.
|
static void |
setEncoding(java.lang.String encoding)
Set current encoding of fallback BufferedReader.
|
static void |
setThrowExceptionOnUnsupportedMethod(boolean flag)
Configure behavior in case an unsupported method is called.
|
static void |
setWordBreakCharacters(java.lang.String wordBreakCharacters)
Set word break characters.
|
static void |
writeHistoryFile(java.lang.String filename)
Writes a history file to disc
|
public static final void load(ReadlineLibrary lib) throws java.lang.UnsatisfiedLinkError
lib
- An object (constant) of type ReadlineLibraryjava.lang.UnsatisfiedLinkError
- if the shared library could not be
found. Add it to your LD_LIBRARY_PATH.ReadlineLibrary
public static void initReadline(java.lang.String applicationName)
Supporting implementations:
applicationName
- Name of application in initialization filepublic static java.lang.String readline(java.lang.String prompt) throws java.io.EOFException, java.io.IOException, java.io.UnsupportedEncodingException
Supporting implementations:
prompt
- Prompt to displayjava.io.EOFException
- on end-of-file, i.e. CTRL-d input.java.io.IOException
java.io.UnsupportedEncodingException
readline(String,boolean)
,
#addHistory()
public static java.lang.String readline(java.lang.String prompt, boolean addToHist) throws java.io.EOFException, java.io.IOException, java.io.UnsupportedEncodingException
prompt
- Prompt to displayaddToHist
- true to add the line to the history
automatically; false to refrain from
adding the line to the history. (You can manually
add the line to the history by calling
addHistory().)java.io.EOFException
- on end-of-file, i.e. CTRL-d input.java.io.IOException
java.io.UnsupportedEncodingException
readline(String)
,
#addHistory()
public static void addToHistory(java.lang.String line)
Supporting implementations:
line
- The line to add to the historyUnsupportOperationException
- if underlying library doesn't support
a historypublic static void getHistory(java.util.Collection collection)
Supporting implementations:
collection
- where to store the historyUnsupportOperationException
- if underlying library doesn't support
a historypublic static int getHistorySize()
Supporting implementations:
public static void clearHistory()
Supporting implementations:
public static java.lang.String getHistoryLine(int i)
Supporting implementations:
i
- the index of the entry to returnjava.lang.ArrayIndexOutOfBoundsException
- index out of rangepublic static void readInitFile(java.lang.String filename) throws java.io.IOException
Supporting implementations:
filename
- Name of file to read bindings fromjava.io.IOException
public static boolean parseAndBind(java.lang.String line)
Supporting implementations:
line
- Simulated line from inputrc filepublic static void readHistoryFile(java.lang.String filename) throws java.io.EOFException, java.io.UnsupportedEncodingException
Supporting implementations:
filename
- Name of history file to readjava.io.EOFException
java.io.UnsupportedEncodingException
public static void writeHistoryFile(java.lang.String filename) throws java.io.EOFException, java.io.UnsupportedEncodingException
Supporting implementations:
filename
- Name of history file to writejava.io.EOFException
java.io.UnsupportedEncodingException
public static void setCompleter(ReadlineCompleter rlc)
null
will result in the default behaviour of readline which is filename
completion.
Supporting implementations:
rlc
- An object implementing the ReadlineCompleter interfacepublic static ReadlineCompleter getCompleter()
public static void cleanup()
Supporting implementations:
public static boolean hasTerminal()
load(ReadlineLibrary)
())
first, otherwise this will always return true.
Supporting implementations:
public static java.lang.String getWordBreakCharacters()
Supporting implementations:
public static java.lang.String getLineBuffer()
ReadlineCompleter
implementation to access the full text
given so far.
Supporting implementations:
public static void setWordBreakCharacters(java.lang.String wordBreakCharacters) throws java.io.UnsupportedEncodingException
Supporting implementations:
wordBreakCharacters
- A string of word break charactersjava.io.UnsupportedEncodingException
public static void setThrowExceptionOnUnsupportedMethod(boolean flag)
flag
- configuration flagpublic static boolean getThrowExceptionOnUnsupportedMethod()
public static void setEncoding(java.lang.String encoding)
encoding
- encoding to usepublic static java.lang.String getEncoding()
Released under the LGPL, (c) Bernhard Bablok, Henner Zeller 1998-2002
Homepage: http://java-readline.sourceforge.net/