Packages
Terminal emulation and driver infrastructure for Raxol. ANSI parsing, screen buffers, command processing, cursor management, input handling, session management, and termbox2 NIF integration.
Current section
Files
Jump to
Current section
Files
lib/raxol/terminal/input_handler.ex
defmodule Raxol.Terminal.InputHandler do
@moduledoc """
Main input handler module that coordinates between different input handling components.
"""
alias Raxol.Terminal.Input.{
CharacterProcessor,
ClipboardHandler,
ControlSequenceHandler,
CoreHandler
}
@doc """
Creates a new input handler with default values.
"""
def new do
CoreHandler.new()
end
@doc """
Handles clipboard paste operation.
"""
def handle_paste(handler) do
ClipboardHandler.handle_paste(handler)
end
@doc """
Handles clipboard copy operation.
"""
def handle_copy(handler) do
ClipboardHandler.handle_copy(handler)
end
@doc """
Handles clipboard cut operation.
"""
def handle_cut(handler) do
ClipboardHandler.handle_cut(handler)
end
@doc """
Processes a raw input string for the terminal.
"""
def process_terminal_input(emulator, input) do
CoreHandler.process_terminal_input(emulator, input)
end
@doc """
Processes a single character codepoint.
"""
def process_character(emulator, char_codepoint) do
CharacterProcessor.process_character(emulator, char_codepoint)
end
@doc """
Handles a CSI sequence.
"""
def handle_csi_sequence(emulator, command, params) do
ControlSequenceHandler.handle_csi_sequence(emulator, command, params)
end
@doc """
Handles an OSC sequence.
"""
def handle_osc_sequence(emulator, command, data) do
ControlSequenceHandler.handle_osc_sequence(emulator, command, data)
end
@doc """
Handles a DCS sequence.
"""
def handle_dcs_sequence(emulator, command, data) do
ControlSequenceHandler.handle_dcs_sequence(emulator, command, data)
end
@doc """
Handles a PM sequence.
"""
def handle_pm_sequence(emulator, command, data) do
ControlSequenceHandler.handle_pm_sequence(emulator, command, data)
end
@doc """
Handles an APC sequence.
"""
def handle_apc_sequence(emulator, command, data) do
ControlSequenceHandler.handle_apc_sequence(emulator, command, data)
end
end