Raxol.Terminal.Scroll.Optimizer (Raxol v2.0.1)

View Source

Handles scroll optimization for better performance. Dynamically adjusts batch size based on recent scroll patterns and (optionally) performance metrics.

Summary

Functions

Creates a new optimizer instance.

Optimizes scroll operations for better performance.

Types

scroll_event()

@type scroll_event() :: %{
  direction: :up | :down,
  lines: non_neg_integer(),
  timestamp: integer()
}

t()

@type t() :: %Raxol.Terminal.Scroll.Optimizer{
  batch_size: non_neg_integer(),
  history: [scroll_event()],
  last_optimization: non_neg_integer()
}

Functions

new()

@spec new() :: t()

Creates a new optimizer instance.

optimize(optimizer, direction, lines)

@spec optimize(t(), :up | :down, non_neg_integer()) :: t()

Optimizes scroll operations for better performance.

  • Increases batch size for large/rapid scrolls.
  • Decreases batch size for small/precise or alternating scrolls.
  • Uses recent scroll history to adapt.