Raxol.UI.Components.Terminal.Emulator (Raxol v0.5.0)

View Source

Terminal emulator component wrapping the core emulator logic.

Summary

Functions

Cleans up resources when the component is destroyed.

Handles terminal resize events by delegating to State. This ensures that the terminal's internal buffers and state are correctly adjusted while preserving existing content and history where possible.

Initializes a new terminal emulator component state. Accepts an optional map of options, currently supporting :width and :height.

Processes input and updates terminal state by delegating to UnifiedIO. Returns a tuple {updated_state, output_string}.

Renders the current terminal state.

Types

emulator_state()

@type emulator_state() :: %{state: Raxol.Terminal.Integration.State.t()}

Functions

cleanup(map)

@spec cleanup(emulator_state()) :: :ok

Cleans up resources when the component is destroyed.

handle_resize(arg, state)

@spec handle_resize(
  {integer(), integer()},
  emulator_state()
) :: emulator_state()

Handles terminal resize events by delegating to State. This ensures that the terminal's internal buffers and state are correctly adjusted while preserving existing content and history where possible.

init(opts \\ %{})

@spec init(map()) :: emulator_state()

Initializes a new terminal emulator component state. Accepts an optional map of options, currently supporting :width and :height.

process_input(input, state)

@spec process_input(term(), emulator_state()) :: {emulator_state(), term()}

Processes input and updates terminal state by delegating to UnifiedIO. Returns a tuple {updated_state, output_string}.

render(state)

@spec render(emulator_state()) :: emulator_state()

Renders the current terminal state.