Raxol.Terminal.Emulator (Raxol v0.5.0)
View SourceManages the state of the terminal emulator, including screen buffer, cursor position, attributes, and modes.
Scrollback Limit Configuration
The scrollback buffer limit can be set via application config:
config :raxol, :terminal, scrollback_lines: 1000
Or overridden per emulator instance by passing the :scrollback
option to new/3
:
Emulator.new(80, 24, scrollback: 2000)
Summary
Functions
See Raxol.Terminal.ScrollbackManager.add_to_scrollback/2
.
See Raxol.Core.Runtime.Plugins.Manager.call_hook/4
.
See Raxol.Terminal.HyperlinkManager.clear_hyperlink_state/1
.
See Raxol.Terminal.State.Manager.clear_saved_states/1
.
See Raxol.Terminal.ScrollbackManager.clear_scrollback/1
.
See Raxol.Terminal.Tab.Manager.clear_tab_stop/1
.
See Raxol.Terminal.ColorManager.color_to_rgb/2
.
See Raxol.Terminal.HyperlinkManager.create_hyperlink/4
.
Callback implementation for Raxol.Terminal.EmulatorBehaviour.get_active_buffer/1
.
See Raxol.Terminal.ColorManager.get_color/2
.
See Raxol.Terminal.ColorManager.get_colors/1
.
See Raxol.Terminal.State.Manager.get_current_state/1
.
Callback implementation for Raxol.Terminal.EmulatorBehaviour.get_cursor_position/1
.
See Raxol.Terminal.HyperlinkManager.get_hyperlink_state/1
.
See Raxol.Terminal.HyperlinkManager.get_hyperlink_url/1
.
See Raxol.Terminal.State.Manager.get_last_col_exceeded/1
.
See Raxol.Core.Runtime.Plugins.Manager.get_loaded_plugins/1
.
See ModeManager.get_manager/1
.
See Raxol.Terminal.Parser.StateManager.get_state/1
.
See Raxol.Terminal.Parser.StateManager.get_state_name/1
.
See Raxol.Core.Runtime.Plugins.Manager.get_plugin_config/2
.
See Raxol.Core.Runtime.Plugins.Manager.get_manager/1
.
See Raxol.Terminal.State.Manager.get_saved_states_count/1
.
See Raxol.Terminal.State.Manager.get_scroll_region/1
.
See Raxol.Terminal.ScrollbackManager.get_scrollback_buffer/1
.
See Raxol.Terminal.ScrollbackManager.get_scrollback_limit/1
.
See Raxol.Terminal.ScrollbackManager.get_scrollback_range/3
.
See Raxol.Terminal.ScrollbackManager.get_scrollback_size/1
.
See ModeManager.get_set_modes/1
.
See Raxol.Terminal.State.Manager.get_state_stack/1
.
See Raxol.Terminal.WindowManager.get_window_state/1
.
See Raxol.Terminal.State.Manager.has_saved_states?/1
.
See Raxol.Terminal.Parser.StateManager.in_control_sequence_state?/1
.
See Raxol.Terminal.Parser.StateManager.in_escape_state?/1
.
See Raxol.Terminal.Parser.StateManager.in_ground_state?/1
.
See Raxol.Core.Runtime.Plugins.Manager.initialize_plugin/3
.
See ModeManager.mode_set?/2
.
See Raxol.Terminal.Cursor.Manager.move_to/4
.
See Raxol.Terminal.Cursor.Manager.move_to/4
.
Creates a new terminal emulator instance.
See Raxol.Core.Runtime.Plugins.Manager.plugin_loaded?/2
.
Processes input from the user, handling both regular characters and escape sequences. Delegates to Raxol.Terminal.InputHandler.process_terminal_input/2.
See ModeManager.reset_all_modes/1
.
See Raxol.Terminal.ColorManager.reset_colors/1
.
See ModeManager.reset_mode/2
.
See Raxol.Terminal.Parser.StateManager.reset_to_ground/1
.
See Raxol.Terminal.State.Manager.reset_to_initial_state/1
.
Resizes the emulator's screen buffers.
See ModeManager.restore_modes/1
.
See Raxol.Terminal.State.Manager.restore_state/1
.
See Raxol.Terminal.WindowManager.restore_window_size/1
.
See ModeManager.save_modes/1
.
See Raxol.Terminal.State.Manager.save_state/1
.
See Raxol.Terminal.WindowManager.save_window_size/1
.
See Raxol.Terminal.ScrollbackManager.scrollback_empty?/1
.
Sets the character set for the specified G-set. Returns {:ok, updated_emulator} or {:error, reason}.
See Raxol.Terminal.ColorManager.set_color/3
.
See Raxol.Terminal.ColorManager.set_colors/2
.
See Raxol.Terminal.Cursor.Manager.move_to/4
.
See Raxol.Terminal.WindowManager.set_icon_name/2
.
See ModeManager.set_mode/2
.
See Raxol.Terminal.Parser.StateManager.set_state_name/2
.
See Raxol.Terminal.ScrollbackManager.set_scrollback_limit/2
.
See Raxol.Terminal.WindowManager.set_stacking_order/2
.
See Raxol.Terminal.WindowManager.set_window_position/3
.
See Raxol.Terminal.WindowManager.set_window_size/3
.
See Raxol.Terminal.WindowManager.set_window_title/2
.
See Raxol.Core.Runtime.Plugins.Manager.unload_plugin/2
.
Updates the currently active screen buffer.
See Raxol.Terminal.State.Manager.update_current_state/2
.
See Raxol.Terminal.HyperlinkManager.update_hyperlink_state/2
.
See Raxol.Terminal.HyperlinkManager.update_hyperlink_url/2
.
See Raxol.Terminal.State.Manager.update_last_col_exceeded/2
.
See ModeManager.update_manager/2
.
See Raxol.Terminal.Parser.StateManager.update_state/2
.
See Raxol.Core.Runtime.Plugins.Manager.update_plugin_config/3
.
See Raxol.Core.Runtime.Plugins.Manager.update_manager/2
.
See Raxol.Terminal.State.Manager.update_scroll_region/2
.
See Raxol.Terminal.State.Manager.update_state_stack/2
.
Writes data to the terminal output.
Writes output to the terminal.
Types
@type cursor_style_type() ::
:blinking_block
| :steady_block
| :blinking_underline
| :steady_underline
| :blinking_bar
| :steady_bar
@type t() :: Raxol.Terminal.Emulator.Struct.t()
Functions
See Raxol.Terminal.ScrollbackManager.add_to_scrollback/2
.
See Raxol.Core.Runtime.Plugins.Manager.call_hook/4
.
See Raxol.Terminal.HyperlinkManager.clear_hyperlink_state/1
.
See Raxol.Terminal.State.Manager.clear_saved_states/1
.
See Raxol.Terminal.ScrollbackManager.clear_scrollback/1
.
See Raxol.Terminal.Tab.Manager.clear_tab_stop/1
.
See Raxol.Terminal.ColorManager.color_to_rgb/2
.
See Raxol.Terminal.HyperlinkManager.create_hyperlink/4
.
See Raxol.Terminal.OutputManager.enqueue_control_sequence/2
.
Callback implementation for Raxol.Terminal.EmulatorBehaviour.get_active_buffer/1
.
See Raxol.Terminal.ColorManager.get_color/2
.
See Raxol.Terminal.ColorManager.get_colors/1
.
See Raxol.Terminal.State.Manager.get_current_state/1
.
Callback implementation for Raxol.Terminal.EmulatorBehaviour.get_cursor_position/1
.
See Raxol.Terminal.HyperlinkManager.get_hyperlink_state/1
.
See Raxol.Terminal.HyperlinkManager.get_hyperlink_url/1
.
See Raxol.Terminal.State.Manager.get_last_col_exceeded/1
.
See Raxol.Core.Runtime.Plugins.Manager.get_loaded_plugins/1
.
See ModeManager.get_manager/1
.
See Raxol.Terminal.Parser.StateManager.get_state/1
.
See Raxol.Terminal.Parser.StateManager.get_state_name/1
.
See Raxol.Core.Runtime.Plugins.Manager.get_plugin_config/2
.
See Raxol.Core.Runtime.Plugins.Manager.get_manager/1
.
See Raxol.Terminal.State.Manager.get_saved_states_count/1
.
See Raxol.Terminal.State.Manager.get_scroll_region/1
.
See Raxol.Terminal.ScrollbackManager.get_scrollback_buffer/1
.
See Raxol.Terminal.ScrollbackManager.get_scrollback_limit/1
.
See Raxol.Terminal.ScrollbackManager.get_scrollback_range/3
.
See Raxol.Terminal.ScrollbackManager.get_scrollback_size/1
.
See ModeManager.get_set_modes/1
.
See Raxol.Terminal.State.Manager.get_state_stack/1
.
See Raxol.Terminal.WindowManager.get_window_state/1
.
See Raxol.Terminal.State.Manager.has_saved_states?/1
.
See Raxol.Terminal.Parser.StateManager.in_control_sequence_state?/1
.
See Raxol.Terminal.Parser.StateManager.in_escape_state?/1
.
See Raxol.Terminal.Parser.StateManager.in_ground_state?/1
.
See Raxol.Core.Runtime.Plugins.Manager.initialize_plugin/3
.
See ModeManager.mode_set?/2
.
See Raxol.Terminal.Cursor.Manager.move_to/4
.
See Raxol.Terminal.Cursor.Manager.move_to/4
.
Creates a new terminal emulator instance.
Can be called with:
new(opts_map)
whereopts_map
is a map containing:width
,:height
, and other options.new(width, height, opts_keyword_list)
new(width, height, session_id, client_options)
(delegates to the keyword list version)
Options (Keyword list or Map)
:width
- Terminal width (default: 80):height
- Terminal height (default: 24):scrollback
- Maximum number of scrollback lines (default: from config or 1000):memorylimit
- Memory limit (default: 1_000_000):max_command_history
- Max command history (default: 100):plugin_manager
- A pre-initializedRaxol.Plugins.Manager.Core
struct.:session_id
- A session identifier string.:client_options
- A map of client-specific options.
See Raxol.Core.Runtime.Plugins.Manager.plugin_loaded?/2
.
Processes input from the user, handling both regular characters and escape sequences. Delegates to Raxol.Terminal.InputHandler.process_terminal_input/2.
See Raxol.Terminal.FormattingManager.reset_all_attributes/1
.
See ModeManager.reset_all_modes/1
.
See Raxol.Terminal.ColorManager.reset_colors/1
.
See ModeManager.reset_mode/2
.
See Raxol.Terminal.Parser.StateManager.reset_to_ground/1
.
See Raxol.Terminal.State.Manager.reset_to_initial_state/1
.
@spec resize( t(), non_neg_integer(), non_neg_integer() ) :: t()
Resizes the emulator's screen buffers.
Parameters
emulator
- The emulator to resizenew_width
- New width in columnsnew_height
- New height in rows
Returns
Updated emulator with resized buffers
See ModeManager.restore_modes/1
.
See Raxol.Terminal.State.Manager.restore_state/1
.
See Raxol.Terminal.WindowManager.restore_window_size/1
.
See ModeManager.save_modes/1
.
See Raxol.Terminal.State.Manager.save_state/1
.
See Raxol.Terminal.WindowManager.save_window_size/1
.
See Raxol.Terminal.ScrollbackManager.scrollback_empty?/1
.
Sets the character set for the specified G-set. Returns {:ok, updated_emulator} or {:error, reason}.
See Raxol.Terminal.ColorManager.set_color/3
.
See Raxol.Terminal.ColorManager.set_colors/2
.
See Raxol.Terminal.Cursor.Manager.move_to/4
.
See Raxol.Terminal.WindowManager.set_icon_name/2
.
See ModeManager.set_mode/2
.
See Raxol.Terminal.Parser.StateManager.set_state_name/2
.
See Raxol.Terminal.ScrollbackManager.set_scrollback_limit/2
.
See Raxol.Terminal.WindowManager.set_stacking_order/2
.
See Raxol.Terminal.WindowManager.set_window_position/3
.
See Raxol.Terminal.WindowManager.set_window_size/3
.
See Raxol.Terminal.WindowManager.set_window_title/2
.
See Raxol.Core.Runtime.Plugins.Manager.unload_plugin/2
.
@spec update_active_buffer( t(), Raxol.Terminal.ScreenBuffer.t() ) :: t()
Updates the currently active screen buffer.
See Raxol.Terminal.State.Manager.update_current_state/2
.
See Raxol.Terminal.HyperlinkManager.update_hyperlink_state/2
.
See Raxol.Terminal.HyperlinkManager.update_hyperlink_url/2
.
See Raxol.Terminal.State.Manager.update_last_col_exceeded/2
.
See ModeManager.update_manager/2
.
See Raxol.Terminal.Parser.StateManager.update_state/2
.
See Raxol.Core.Runtime.Plugins.Manager.update_plugin_config/3
.
See Raxol.Core.Runtime.Plugins.Manager.update_manager/2
.
See Raxol.Terminal.State.Manager.update_scroll_region/2
.
See Raxol.Terminal.State.Manager.update_state_stack/2
.
Writes data to the terminal output.
Writes output to the terminal.