Renderer-owned immutable index for direct text-pointer resolution.
Summary
Functions
Makes one already-published candidate active.
Removes exact lease metadata before releasing its immutable graph pin.
Drops current roots owned by a terminated buffer.
Publishes one complete candidate graph and pins its lease and current root.
Clears every lease, active record, graph node, and root pin for a new connection.
Drops current graph roots for windows absent from the acknowledged output.
Types
@type root_ref() :: reference()
@type t() :: %MingaEditor.Renderer.TextInteractionIndex{ current_roots: %{optional(pos_integer()) => current_root()}, last_publication_nodes: non_neg_integer(), table: :ets.table() }
Functions
@spec activate(t(), pos_integer(), pos_integer()) :: :ok | {:error, :unknown}
Makes one already-published candidate active.
@spec discard(t(), MingaEditor.Renderer.TextPresentation.t()) :: t()
Removes exact lease metadata before releasing its immutable graph pin.
Drops current roots owned by a terminated buffer.
@spec last_publication_nodes(t()) :: non_neg_integer()
@spec new() :: t()
@spec publish(t(), MingaEditor.Renderer.TextPresentation.t()) :: t()
Publishes one complete candidate graph and pins its lease and current root.
@spec reader(t()) :: MingaEditor.Renderer.TextInteractionIndex.Reader.t()
Clears every lease, active record, graph node, and root pin for a new connection.
@spec retain_current_windows(t(), MapSet.t(pos_integer())) :: t()
Drops current graph roots for windows absent from the acknowledged output.