MingaEditor.Renderer.Submission (Minga v0.1.0)

Copy Markdown View Source

Editor-to-Renderer transport containing only changed bulk highlight data.

The packed intent is private to this envelope. Materialize it in mailbox order before rejecting or coalescing frames, so every renderer workflow receives a complete immutable Intent. A full submission replaces the retained maps; a delta preserves unchanged buffers and explicitly removes closed ones.

Summary

Functions

Builds a delta against the same renderer process's last submitted source revisions.

Builds a self-contained submission for a new renderer or an independent caller.

Installs the update and restores the exact full intent before frame scheduling.

Types

highlights()

@type highlights() :: %{required(pid()) => MingaEditor.UI.Highlight.t()}

revisions()

@type revisions() :: %{required(pid()) => reference()}

semantic_tokens()

@type semantic_tokens() :: %{
  required(pid()) => MingaEditor.State.LSP.semantic_layer()
}

t()

@opaque t()

Functions

delta(intent, previous_highlights, previous_semantics, semantic_revisions)

Builds a delta against the same renderer process's last submitted source revisions.

full(intent)

Builds a self-contained submission for a new renderer or an independent caller.

materialize(submission, highlights, semantic_tokens)

Installs the update and restores the exact full intent before frame scheduling.