Immutable source correspondence retained for frontend text-pointer input.
Summary
Functions
Resolves one rank-addressed row after verifying its durable row id.
Resolves one already-located visual row through the shared source mapping.
Reuses the prior presentation only when its immutable interaction identity matches.
Types
@type rows() :: {:resident, MingaEditor.RenderModel.Window.ResidentStore.t()} | {:windowed, tuple()}
@type t() :: %MingaEditor.Renderer.TextPresentation{ buffer: pid(), identity: term(), presentation_id: pos_integer(), rows: rows(), source_version: non_neg_integer(), window_id: MingaEditor.Window.id() }
Functions
@spec new(MingaEditor.Window.id(), pid(), non_neg_integer(), term(), rows()) :: t()
@spec resolve(t(), non_neg_integer(), non_neg_integer(), non_neg_integer()) :: {:ok, MingaEditor.Mouse.Target.Text.t()} | {:error, :row_not_found | :row_id_mismatch | :not_source_backed}
Resolves one rank-addressed row after verifying its durable row id.
@spec resolve_row( MingaEditor.Window.id(), pid(), non_neg_integer(), MingaEditor.RenderModel.Window.VisualRow.t(), non_neg_integer(), non_neg_integer() ) :: {:ok, MingaEditor.Mouse.Target.Text.t()} | {:error, :row_id_mismatch | :not_source_backed}
Resolves one already-located visual row through the shared source mapping.
@spec retain( t() | nil, MingaEditor.Window.id(), pid(), non_neg_integer(), term(), rows() ) :: t()
Reuses the prior presentation only when its immutable interaction identity matches.