Focused data contract for the emit pipeline.
Contains exactly what the emit stage needs from the render pipeline input,
decoupling it from MingaEditor.State.t(). The pipeline builds this context
in the Emit stage before calling Emit.emit/4.
Summary
Functions
Builds an emit context from render pipeline input.
Types
@type t() :: %MingaEditor.Frontend.Emit.Context{ agent_ui: MingaEditor.Agent.UIState.t(), buffers: MingaEditor.State.Buffers.t(), capabilities: MingaEditor.Frontend.Capabilities.t(), completion: Minga.Editing.Completion.t() | nil, config_state: Minga.RenderModel.UI.ConfigState.t() | nil, cursor_animate: boolean() | nil, editing: MingaEditor.VimState.t(), file_tree: MingaEditor.State.FileTree.t(), font_registry: MingaEditor.UI.FontRegistry.t(), force_keyframe?: boolean(), frame_seq: non_neg_integer() | nil, git_syncing: boolean(), git_toast: MingaEditor.Frontend.Protocol.GUI.git_toast() | nil, gui?: boolean(), highlight: MingaEditor.State.Highlighting.t(), keymap_scope: Minga.Keymap.Scope.scope_name(), last_input_seq: non_neg_integer(), layout: MingaEditor.Layout.t(), line_spacing: number() | nil, message_store: MingaEditor.UI.Panel.MessageStore.t(), notifications: MingaEditor.UI.NotificationCenter.t(), port_manager: pid(), search: MingaEditor.State.Search.t(), shell: module(), shell_id: atom(), shell_state: term(), sidebar_registry: MingaEditor.Extension.Sidebar.table(), status_bar_data: term(), surface_placements: [MingaEditor.Layout.SurfaceRegistry.wire_placement()], tab_bar: MingaEditor.State.TabBar.t() | nil, theme: MingaEditor.UI.Theme.t(), title: String.t(), viewport: MingaEditor.Viewport.t(), windows: MingaEditor.State.Windows.t() }