MingaEditor.Frontend.Emit.Context (Minga v0.1.0)

Copy Markdown View Source

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

t()

@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()
}

Functions

from_editor_state(state)

@spec from_editor_state(map()) :: t()

Builds an emit context from render pipeline input.