Raxol.Terminal.Commands.CursorHandlers (Raxol v0.5.0)

View Source

Handles cursor movement related CSI commands.

This module contains handlers for cursor movement commands like CUP, CUU, CUD, etc. Each function takes the current emulator state and parsed parameters, returning the updated emulator state.

Summary

Functions

Handles Cursor Up (CUU - 'A")

Handles Cursor Down (CUD - 'B")

Handles Cursor Forward (CUF - 'C")

Handles Cursor Position (CUP - 'H")

Helper function to handle cursor movement operations. Takes the emulator, movement function, and movement parameters.

Handles Cursor Backward (CUB - 'D")

Handles Cursor Vertical Absolute (VPA - 'd")

Handles Cursor Next Line (CNL - 'E")

Handles Cursor Previous Line (CPL - 'F")

Handles Cursor Horizontal Absolute (CHA - 'G")

Functions

handle_a(emulator, params)

@spec handle_a(Raxol.Terminal.Emulator.t(), [integer()]) ::
  {:ok, Raxol.Terminal.Emulator.t()}
  | {:error, atom(), Raxol.Terminal.Emulator.t()}

Handles Cursor Up (CUU - 'A")

handle_b(emulator, params)

@spec handle_b(Raxol.Terminal.Emulator.t(), [integer()]) ::
  {:ok, Raxol.Terminal.Emulator.t()}
  | {:error, atom(), Raxol.Terminal.Emulator.t()}

Handles Cursor Down (CUD - 'B")

handle_c(emulator, params)

@spec handle_c(Raxol.Terminal.Emulator.t(), [integer()]) ::
  {:ok, Raxol.Terminal.Emulator.t()}
  | {:error, atom(), Raxol.Terminal.Emulator.t()}

Handles Cursor Forward (CUF - 'C")

handle_cup(emulator, params)

@spec handle_cup(Raxol.Terminal.Emulator.t(), [integer()]) ::
  {:ok, Raxol.Terminal.Emulator.t()}
  | {:error, atom(), Raxol.Terminal.Emulator.t()}

Handles Cursor Position (CUP - 'H")

handle_cursor_movement(emulator, movement_fn, amount)

Helper function to handle cursor movement operations. Takes the emulator, movement function, and movement parameters.

handle_d(emulator, params)

@spec handle_d(Raxol.Terminal.Emulator.t(), [integer()]) ::
  {:ok, Raxol.Terminal.Emulator.t()}
  | {:error, atom(), Raxol.Terminal.Emulator.t()}

Handles Cursor Backward (CUB - 'D")

handle_decvpa(emulator, params)

@spec handle_decvpa(Raxol.Terminal.Emulator.t(), [integer()]) ::
  {:ok, Raxol.Terminal.Emulator.t()}
  | {:error, atom(), Raxol.Terminal.Emulator.t()}

Handles Cursor Vertical Absolute (VPA - 'd")

handle_e(emulator, params)

@spec handle_e(Raxol.Terminal.Emulator.t(), [integer()]) ::
  {:ok, Raxol.Terminal.Emulator.t()}
  | {:error, atom(), Raxol.Terminal.Emulator.t()}

Handles Cursor Next Line (CNL - 'E")

handle_f(emulator, params)

@spec handle_f(Raxol.Terminal.Emulator.t(), [integer()]) ::
  {:ok, Raxol.Terminal.Emulator.t()}
  | {:error, atom(), Raxol.Terminal.Emulator.t()}

Handles Cursor Previous Line (CPL - 'F")

handle_g(emulator, params)

@spec handle_g(Raxol.Terminal.Emulator.t(), [integer()]) ::
  {:ok, Raxol.Terminal.Emulator.t()}
  | {:error, atom(), Raxol.Terminal.Emulator.t()}

Handles Cursor Horizontal Absolute (CHA - 'G")