Packages

Multi-surface application runtime for Elixir. One TEA module renders to terminal, browser (LiveView), SSH, and MCP (agents). 30+ widgets, flexbox + CSS grid, AI agent runtime, distributed swarm with CRDTs, time-travel debugging, session recording, sandboxed REPL, and agentic commerce.

Current section

Files

Jump to
raxol lib raxol terminal terminal_core.ex
Raw

lib/raxol/terminal/terminal_core.ex

defmodule Raxol.Terminal.TerminalCore do
@moduledoc """
Core state struct for the terminal emulator. This struct holds the main state fields used by the emulator state management functions.
"""
defstruct [
:active_buffer_type,
:mode_manager,
:charset_state,
:state,
:memory_limit,
:current_hyperlink_url,
:tab_stops,
:scroll_region,
:saved_cursor,
mounted: false,
render_count: 0
]
@type t :: %__MODULE__{
active_buffer_type: any(),
mode_manager: any(),
charset_state: any(),
state: any(),
memory_limit: integer() | nil,
current_hyperlink_url: String.t() | nil,
tab_stops: any(),
scroll_region: {non_neg_integer(), non_neg_integer()} | nil,
saved_cursor: {non_neg_integer(), non_neg_integer()} | nil
}
end