Raxol.Terminal.ScreenBuffer (Raxol v0.2.0)
View SourceManages the terminal's screen buffer state (grid, scrollback, selection). Delegates operations to specialized modules in Raxol.Terminal.Buffer.*
Summary
Functions
Clears buffer. See Raxol.Terminal.Buffer.Operations.clear/1
.
Clears region. See Raxol.Terminal.Buffer.Operations.clear_region/5
.
Clears scroll region. See Raxol.Terminal.Buffer.Operations.clear_scroll_region/1
.
Deletes characters. See Raxol.Terminal.Buffer.Operations.delete_characters/3
.
Deletes lines. See Raxol.Terminal.Buffer.Operations.delete_lines/4
.
Calculates diff. See Raxol.Terminal.Buffer.Operations.diff/2
.
Erases in display. See Raxol.Terminal.Buffer.Operations.erase_in_display/3
.
Erases in line. See Raxol.Terminal.Buffer.Operations.erase_in_line/3
.
Gets cell. See Raxol.Terminal.Buffer.Operations.get_cell/3
.
Gets cell at. See Raxol.Terminal.Buffer.Operations.get_cell_at/3
.
Gets content as string. See Raxol.Terminal.Buffer.Operations.get_content/1
.
Gets dimensions. See Raxol.Terminal.Buffer.Operations.get_dimensions/1
.
Gets height. See Raxol.Terminal.Buffer.Operations.get_height/1
.
Gets scrollback size. See Raxol.Terminal.Buffer.Scrollback.size/1
.
Gets scroll region boundaries. See Raxol.Terminal.Buffer.Operations.get_scroll_region_boundaries/1
.
Gets selected text. See Raxol.Terminal.Buffer.Selection.get_text/1
.
Gets selection boundaries. See Raxol.Terminal.Buffer.Selection.get_boundaries/1
.
Gets text in region. See Raxol.Terminal.Buffer.Selection.get_text_in_region/5
.
Gets width. See Raxol.Terminal.Buffer.Operations.get_width/1
.
Checks if in selection. See Raxol.Terminal.Buffer.Selection.contains?/3
.
Inserts characters. See Raxol.Terminal.Buffer.Operations.insert_characters/4
.
Inserts lines. See Raxol.Terminal.Buffer.Operations.insert_lines/4
.
Creates a new screen buffer with the specified dimensions.
Resizes buffer. See Raxol.Terminal.Buffer.Operations.resize/3
.
Scrolls down. See Raxol.Terminal.Buffer.Operations.scroll_down/3
.
Scrolls up. See Raxol.Terminal.Buffer.Operations.scroll_up/3
.
Sets scroll region. See Raxol.Terminal.Buffer.Operations.set_scroll_region/3
.
Starts selection. See Raxol.Terminal.Buffer.Selection.start/3
.
Updates buffer from changes. See Raxol.Terminal.Buffer.Operations.update/2
.
Updates selection. See Raxol.Terminal.Buffer.Selection.update/3
.
Writes a character. See Raxol.Terminal.Buffer.Operations.write_char/5
.
Writes a string. See Raxol.Terminal.Buffer.Operations.write_string/4
.
Types
@type t() :: %Raxol.Terminal.ScreenBuffer{ cells: [[Raxol.Terminal.Cell.t()]], height: non_neg_integer(), scroll_region: {integer(), integer()} | nil, scrollback: [[Raxol.Terminal.Cell.t()]], scrollback_limit: non_neg_integer(), selection: {integer(), integer(), integer(), integer()} | nil, width: non_neg_integer() }
Functions
Clears buffer. See Raxol.Terminal.Buffer.Operations.clear/1
.
@spec clear_region( t(), non_neg_integer(), non_neg_integer(), non_neg_integer(), non_neg_integer() ) :: t()
Clears region. See Raxol.Terminal.Buffer.Operations.clear_region/5
.
Clears scroll region. See Raxol.Terminal.Buffer.Operations.clear_scroll_region/1
.
@spec delete_characters( t(), {non_neg_integer(), non_neg_integer()}, non_neg_integer() ) :: t()
Deletes characters. See Raxol.Terminal.Buffer.Operations.delete_characters/3
.
@spec delete_lines( t(), non_neg_integer(), non_neg_integer(), {non_neg_integer(), non_neg_integer()} | nil ) :: t()
Deletes lines. See Raxol.Terminal.Buffer.Operations.delete_lines/4
.
@spec diff(t(), [{non_neg_integer(), non_neg_integer(), map()}]) :: [ {non_neg_integer(), non_neg_integer(), map()} ]
Calculates diff. See Raxol.Terminal.Buffer.Operations.diff/2
.
@spec erase_in_display(t(), {non_neg_integer(), non_neg_integer()}, atom()) :: t()
Erases in display. See Raxol.Terminal.Buffer.Operations.erase_in_display/3
.
@spec erase_in_line(t(), {non_neg_integer(), non_neg_integer()}, atom()) :: t()
Erases in line. See Raxol.Terminal.Buffer.Operations.erase_in_line/3
.
@spec get_cell(t(), non_neg_integer(), non_neg_integer()) :: Raxol.Terminal.Cell.t() | nil
Gets cell. See Raxol.Terminal.Buffer.Operations.get_cell/3
.
@spec get_cell_at(t(), non_neg_integer(), non_neg_integer()) :: Raxol.Terminal.Cell.t() | nil
Gets cell at. See Raxol.Terminal.Buffer.Operations.get_cell_at/3
.
Gets content as string. See Raxol.Terminal.Buffer.Operations.get_content/1
.
@spec get_dimensions(t()) :: {non_neg_integer(), non_neg_integer()}
Gets dimensions. See Raxol.Terminal.Buffer.Operations.get_dimensions/1
.
@spec get_height(t()) :: non_neg_integer()
Gets height. See Raxol.Terminal.Buffer.Operations.get_height/1
.
@spec get_line(t(), non_neg_integer()) :: [Raxol.Terminal.Cell.t()] | nil
Gets line. See Raxol.Terminal.Buffer.Operations.get_line/2
.
@spec get_scroll_position(t()) :: non_neg_integer()
Gets scrollback size. See Raxol.Terminal.Buffer.Scrollback.size/1
.
@spec get_scroll_region_boundaries(t()) :: {non_neg_integer(), non_neg_integer()}
Gets scroll region boundaries. See Raxol.Terminal.Buffer.Operations.get_scroll_region_boundaries/1
.
Gets selected text. See Raxol.Terminal.Buffer.Selection.get_text/1
.
@spec get_selection_boundaries(t()) :: {non_neg_integer(), non_neg_integer(), non_neg_integer(), non_neg_integer()} | nil
Gets selection boundaries. See Raxol.Terminal.Buffer.Selection.get_boundaries/1
.
@spec get_text_in_region( t(), non_neg_integer(), non_neg_integer(), non_neg_integer(), non_neg_integer() ) :: String.t()
Gets text in region. See Raxol.Terminal.Buffer.Selection.get_text_in_region/5
.
@spec get_width(t()) :: non_neg_integer()
Gets width. See Raxol.Terminal.Buffer.Operations.get_width/1
.
@spec in_selection?(t(), non_neg_integer(), non_neg_integer()) :: boolean()
Checks if in selection. See Raxol.Terminal.Buffer.Selection.contains?/3
.
@spec insert_characters( t(), {non_neg_integer(), non_neg_integer()}, non_neg_integer(), Raxol.Terminal.ANSI.TextFormatting.text_style() | nil ) :: t()
Inserts characters. See Raxol.Terminal.Buffer.Operations.insert_characters/4
.
@spec insert_lines( t(), non_neg_integer(), non_neg_integer(), {non_neg_integer(), non_neg_integer()} | nil ) :: t()
Inserts lines. See Raxol.Terminal.Buffer.Operations.insert_lines/4
.
@spec new(non_neg_integer(), non_neg_integer(), non_neg_integer()) :: t()
Creates a new screen buffer with the specified dimensions.
@spec resize(t(), non_neg_integer(), non_neg_integer()) :: t()
Resizes buffer. See Raxol.Terminal.Buffer.Operations.resize/3
.
@spec scroll_down( t(), non_neg_integer(), {non_neg_integer(), non_neg_integer()} | nil ) :: t()
Scrolls down. See Raxol.Terminal.Buffer.Operations.scroll_down/3
.
@spec scroll_up( t(), non_neg_integer(), {non_neg_integer(), non_neg_integer()} | nil ) :: t()
Scrolls up. See Raxol.Terminal.Buffer.Operations.scroll_up/3
.
@spec set_scroll_region(t(), non_neg_integer(), non_neg_integer()) :: t()
Sets scroll region. See Raxol.Terminal.Buffer.Operations.set_scroll_region/3
.
@spec start_selection(t(), non_neg_integer(), non_neg_integer()) :: t()
Starts selection. See Raxol.Terminal.Buffer.Selection.start/3
.
@spec update( t(), [{non_neg_integer(), non_neg_integer(), Raxol.Terminal.Cell.t() | map()}] ) :: t()
Updates buffer from changes. See Raxol.Terminal.Buffer.Operations.update/2
.
@spec update_selection(t(), non_neg_integer(), non_neg_integer()) :: t()
Updates selection. See Raxol.Terminal.Buffer.Selection.update/3
.
@spec write_char( t(), non_neg_integer(), non_neg_integer(), String.t(), Raxol.Terminal.ANSI.TextFormatting.text_style() | nil ) :: t()
Writes a character. See Raxol.Terminal.Buffer.Operations.write_char/5
.
@spec write_string(t(), non_neg_integer(), non_neg_integer(), String.t()) :: t()
Writes a string. See Raxol.Terminal.Buffer.Operations.write_string/4
.