Package jline
Class UnixTerminal
- java.lang.Object
-
- jline.Terminal
-
- jline.UnixTerminal
-
- All Implemented Interfaces:
ConsoleOperations
public class UnixTerminal extends Terminal
Terminal that is used for unix platforms. Terminal initialization is handled by issuing the stty command against the /dev/tty file to disable character echoing and enable character input. All known unix systems (including Linux and Macintosh OS X) support the stty), so this implementation should work for an reasonable POSIX system.
- Author:
- Marc Prud'hommeaux, Updates Dale Kemp 2005-12-03
-
-
Field Summary
Fields Modifier and Type Field Description static short
ARROW_DOWN
static short
ARROW_LEFT
static short
ARROW_PREFIX
static short
ARROW_RIGHT
static short
ARROW_START
static short
ARROW_UP
static short
DEL_SECOND
static short
DEL_THIRD
static short
END_CODE
static short
HOME_CODE
static short
O_PREFIX
-
Fields inherited from interface jline.ConsoleOperations
ABORT, ADD, BACKSPACE, CHANGE_CASE, CHANGE_META, CLEAR_LINE, CLEAR_SCREEN, COMPLETE, CR, CTRL_A, CTRL_B, CTRL_C, CTRL_D, CTRL_E, CTRL_F, CTRL_G, CTRL_K, CTRL_L, CTRL_N, CTRL_OB, CTRL_P, CTRL_QM, DELETE, DELETE_META, DELETE_NEXT_CHAR, DELETE_PREV_CHAR, DELETE_PREV_WORD, END_OF_HISTORY, END_WORD, EXIT, INSERT, KEYBOARD_BELL, KILL_LINE, KILL_LINE_PREV, MOVE_TO_BEG, MOVE_TO_END, NEWLINE, NEXT_CHAR, NEXT_HISTORY, NEXT_SPACE_WORD, NEXT_WORD, PASTE, PASTE_NEXT, PASTE_PREV, PREV_CHAR, PREV_HISTORY, PREV_SPACE_WORD, PREV_WORD, REDISPLAY, REPEAT_NEXT_CHAR, REPEAT_PREV_CHAR, REPEAT_SEARCH_NEXT, REPEAT_SEARCH_PREV, REPLACE_CHAR, REPLACE_MODE, RESET_LINE, SEARCH_NEXT, SEARCH_PREV, START_OF_HISTORY, SUBSTITUTE_CHAR, SUBSTITUTE_LINE, TO_END_WORD, TO_NEXT_CHAR, TO_PREV_CHAR, UNDO, UNKNOWN
-
-
Constructor Summary
Constructors Constructor Description UnixTerminal()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
checkBackspace()
void
disableEcho()
Disable character echoing.void
enableEcho()
Enable character echoing.boolean
getEcho()
Returns true if the terminal will echo all characters type.static java.lang.String
getSttyCommand()
The command to use to set the terminal options.int
getTerminalHeight()
Returns the value of "stty size" height param.int
getTerminalWidth()
Returns the value of "stty size" width param.void
initializeTerminal()
Remove line-buffered input by invoking "stty -icanon min 1" against the current terminal.boolean
isEchoEnabled()
Returns false if character echoing is disabled.boolean
isSupported()
Returns true if this terminal is capable of initializing the terminal to use jline.int
readVirtualKey(java.io.InputStream in)
Reads a virtual key from the console.void
restoreTerminal()
Restore the original terminal configuration, which can be used when shutting down the console reader.static void
setSttyCommand(java.lang.String cmd)
The command to use to set the terminal options.protected static java.lang.String
stty(java.lang.String args)
Execute the stty command with the specified arguments against the current active terminal.-
Methods inherited from class jline.Terminal
afterReadLine, beforeReadLine, getDefaultBindings, getTerminal, isANSISupported, readCharacter, resetTerminal, setupTerminal
-
-
-
-
Field Detail
-
ARROW_START
public static final short ARROW_START
- See Also:
- Constant Field Values
-
ARROW_PREFIX
public static final short ARROW_PREFIX
- See Also:
- Constant Field Values
-
ARROW_LEFT
public static final short ARROW_LEFT
- See Also:
- Constant Field Values
-
ARROW_RIGHT
public static final short ARROW_RIGHT
- See Also:
- Constant Field Values
-
ARROW_UP
public static final short ARROW_UP
- See Also:
- Constant Field Values
-
ARROW_DOWN
public static final short ARROW_DOWN
- See Also:
- Constant Field Values
-
O_PREFIX
public static final short O_PREFIX
- See Also:
- Constant Field Values
-
HOME_CODE
public static final short HOME_CODE
- See Also:
- Constant Field Values
-
END_CODE
public static final short END_CODE
- See Also:
- Constant Field Values
-
DEL_THIRD
public static final short DEL_THIRD
- See Also:
- Constant Field Values
-
DEL_SECOND
public static final short DEL_SECOND
- See Also:
- Constant Field Values
-
-
Method Detail
-
checkBackspace
protected void checkBackspace()
-
initializeTerminal
public void initializeTerminal() throws java.io.IOException, java.lang.InterruptedException
Remove line-buffered input by invoking "stty -icanon min 1" against the current terminal.- Specified by:
initializeTerminal
in classTerminal
- Throws:
java.io.IOException
java.lang.InterruptedException
-
restoreTerminal
public void restoreTerminal() throws java.lang.Exception
Restore the original terminal configuration, which can be used when shutting down the console reader. The ConsoleReader cannot be used after calling this method.- Throws:
java.lang.Exception
-
readVirtualKey
public int readVirtualKey(java.io.InputStream in) throws java.io.IOException
Description copied from class:Terminal
Reads a virtual key from the console. Typically, this will just be the raw character that was entered, but in some cases, multiple input keys will need to be translated into a single virtual key.- Overrides:
readVirtualKey
in classTerminal
- Parameters:
in
- the InputStream to read from- Returns:
- the virtual key (e.g.,
ConsoleOperations#VK_UP
) - Throws:
java.io.IOException
-
isSupported
public boolean isSupported()
Description copied from class:Terminal
Returns true if this terminal is capable of initializing the terminal to use jline.- Specified by:
isSupported
in classTerminal
-
getEcho
public boolean getEcho()
Description copied from class:Terminal
Returns true if the terminal will echo all characters type.
-
getTerminalWidth
public int getTerminalWidth()
Returns the value of "stty size" width param. Note: this method caches the value from the first time it is called in order to increase speed, which means that changing to size of the terminal will not be reflected in the console.- Specified by:
getTerminalWidth
in classTerminal
-
getTerminalHeight
public int getTerminalHeight()
Returns the value of "stty size" height param. Note: this method caches the value from the first time it is called in order to increase speed, which means that changing to size of the terminal will not be reflected in the console.- Specified by:
getTerminalHeight
in classTerminal
-
stty
protected static java.lang.String stty(java.lang.String args) throws java.io.IOException, java.lang.InterruptedException
Execute the stty command with the specified arguments against the current active terminal.- Throws:
java.io.IOException
java.lang.InterruptedException
-
setSttyCommand
public static void setSttyCommand(java.lang.String cmd)
The command to use to set the terminal options. Defaults to "stty", or the value of the system property "jline.sttyCommand".
-
getSttyCommand
public static java.lang.String getSttyCommand()
The command to use to set the terminal options. Defaults to "stty", or the value of the system property "jline.sttyCommand".
-
isEchoEnabled
public boolean isEchoEnabled()
Description copied from class:Terminal
Returns false if character echoing is disabled.- Specified by:
isEchoEnabled
in classTerminal
-
enableEcho
public void enableEcho()
Description copied from class:Terminal
Enable character echoing. This can be used to re-enable character if the ConsoleReader is no longer being used.- Specified by:
enableEcho
in classTerminal
-
disableEcho
public void disableEcho()
Description copied from class:Terminal
Disable character echoing. This can be used to manually re-enable character if the ConsoleReader has been disabled.- Specified by:
disableEcho
in classTerminal
-
-