Package org.jline.reader
Interface Buffer
-
- All Known Implementing Classes:
BufferImpl
public interface Buffer
Represents the editable text buffer in the LineReader.The Buffer interface provides methods for manipulating the text that the user is currently editing in the LineReader. It supports operations such as cursor movement, text insertion and deletion, and content retrieval.
The buffer maintains a current cursor position that indicates where text will be inserted or deleted. Many of the methods in this interface operate relative to this cursor position.
The default implementation is
BufferImpl
.- See Also:
LineReader.getBuffer()
,BufferImpl
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description int
atChar(int i)
Returns the character at the specified position in the buffer.boolean
backspace()
Deletes the character before the cursor position.int
backspace(int num)
Deletes multiple characters before the cursor position.boolean
clear()
Clears the buffer content.Buffer
copy()
Creates a copy of this buffer.void
copyFrom(Buffer buffer)
Copies the content and cursor position from another buffer.int
currChar()
Returns the character at the current cursor position.boolean
currChar(int c)
Replaces the character at the current cursor position.int
cursor()
Returns the current cursor position in the buffer.boolean
cursor(int position)
Moves the cursor to the specified position.boolean
delete()
Deletes the character at the cursor position.int
delete(int num)
Deletes multiple characters starting at the cursor position.boolean
down()
Moves the cursor down one line while maintaining the same column position if possible.int
length()
Returns the length of the buffer.int
move(int num)
Moves the cursor by the specified number of characters.boolean
moveXY(int dx, int dy)
Moves the cursor by the specified number of columns and rows.int
nextChar()
Returns the character after the current cursor position.int
prevChar()
Returns the character before the current cursor position.java.lang.String
substring(int start)
Returns a substring of the buffer from the specified start position to the end.java.lang.String
substring(int start, int end)
Returns a substring of the buffer from the specified start position to the specified end position.java.lang.String
toString()
boolean
up()
Moves the cursor up one line while maintaining the same column position if possible.java.lang.String
upToCursor()
Returns a substring of the buffer from the beginning to the current cursor position.void
write(int c)
Writes a character at the current cursor position and advances the cursor.void
write(int c, boolean overTyping)
Writes a character at the current cursor position and advances the cursor.void
write(java.lang.CharSequence str)
Writes a string at the current cursor position and advances the cursor.void
write(java.lang.CharSequence str, boolean overTyping)
Writes a string at the current cursor position and advances the cursor.void
zeroOut()
Clear any internal buffer.
-
-
-
Method Detail
-
cursor
int cursor()
Returns the current cursor position in the buffer.- Returns:
- the current cursor position (0-based index)
-
atChar
int atChar(int i)
Returns the character at the specified position in the buffer.- Parameters:
i
- the position to check- Returns:
- the character at the specified position, or -1 if the position is invalid
-
length
int length()
Returns the length of the buffer.- Returns:
- the number of characters in the buffer
-
currChar
int currChar()
Returns the character at the current cursor position.- Returns:
- the character at the cursor position, or -1 if the cursor is at the end of the buffer
-
prevChar
int prevChar()
Returns the character before the current cursor position.- Returns:
- the character before the cursor position, or -1 if the cursor is at the beginning of the buffer
-
nextChar
int nextChar()
Returns the character after the current cursor position.- Returns:
- the character after the cursor position, or -1 if the cursor is at the end of the buffer
-
cursor
boolean cursor(int position)
Moves the cursor to the specified position.- Parameters:
position
- the position to move the cursor to- Returns:
- true if the cursor was moved, false if the position was invalid
-
move
int move(int num)
Moves the cursor by the specified number of characters. Positive values move right, negative values move left.- Parameters:
num
- the number of characters to move- Returns:
- the number of positions actually moved
-
up
boolean up()
Moves the cursor up one line while maintaining the same column position if possible. This is used for multi-line editing.- Returns:
- true if the cursor was moved, false if it was already at the first line
-
down
boolean down()
Moves the cursor down one line while maintaining the same column position if possible. This is used for multi-line editing.- Returns:
- true if the cursor was moved, false if it was already at the last line
-
moveXY
boolean moveXY(int dx, int dy)
Moves the cursor by the specified number of columns and rows. This is used for multi-line editing.- Parameters:
dx
- the number of columns to move (positive for right, negative for left)dy
- the number of rows to move (positive for down, negative for up)- Returns:
- true if the cursor was moved, false otherwise
-
clear
boolean clear()
Clears the buffer content.- Returns:
- true if the buffer was modified
-
currChar
boolean currChar(int c)
Replaces the character at the current cursor position.- Parameters:
c
- the character to set at the current position- Returns:
- true if the buffer was modified
-
write
void write(int c)
Writes a character at the current cursor position and advances the cursor.- Parameters:
c
- the character to write
-
write
void write(int c, boolean overTyping)
Writes a character at the current cursor position and advances the cursor.- Parameters:
c
- the character to writeoverTyping
- if true, overwrites the character at the current position
-
write
void write(java.lang.CharSequence str)
Writes a string at the current cursor position and advances the cursor.- Parameters:
str
- the string to write
-
write
void write(java.lang.CharSequence str, boolean overTyping)
Writes a string at the current cursor position and advances the cursor.- Parameters:
str
- the string to writeoverTyping
- if true, overwrites characters at the current position
-
backspace
boolean backspace()
Deletes the character before the cursor position.- Returns:
- true if the buffer was modified
-
backspace
int backspace(int num)
Deletes multiple characters before the cursor position.- Parameters:
num
- the number of characters to delete- Returns:
- the number of characters actually deleted
-
delete
boolean delete()
Deletes the character at the cursor position.- Returns:
- true if the buffer was modified
-
delete
int delete(int num)
Deletes multiple characters starting at the cursor position.- Parameters:
num
- the number of characters to delete- Returns:
- the number of characters actually deleted
-
substring
java.lang.String substring(int start)
Returns a substring of the buffer from the specified start position to the end.- Parameters:
start
- the start index, inclusive- Returns:
- the substring
-
substring
java.lang.String substring(int start, int end)
Returns a substring of the buffer from the specified start position to the specified end position.- Parameters:
start
- the start index, inclusiveend
- the end index, exclusive- Returns:
- the substring
-
upToCursor
java.lang.String upToCursor()
Returns a substring of the buffer from the beginning to the current cursor position.- Returns:
- the substring
-
toString
java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
copy
Buffer copy()
Creates a copy of this buffer.- Returns:
- a new buffer with the same content and cursor position
-
copyFrom
void copyFrom(Buffer buffer)
Copies the content and cursor position from another buffer.- Parameters:
buffer
- the buffer to copy from
-
zeroOut
void zeroOut()
Clear any internal buffer.
-
-