Immutable root value for the single Editor GenServer.
The root stores exactly 16 owner values. Leaf transitions belong to those owners. This module retains only pure transitions whose invariant atomically spans at least two top-level owners; process, registry, persistence, logging, rendering, and service work belongs to focused workflows around these transitions.
Summary
Types
Focused result from a pure buffer-registration transition.
Transient Cmd/Ctrl-hover go-to-definition link range, or nil.
A document highlight range from the LSP server.
Event bus registry used by this editor instance.
Re-export of Minga.Keymap.server/0 for editor-state callers.
Line number display style.
Re-export of Minga.Config.Options.server/0 for editor-state callers.
Focused result from a pure tab-switch transition.
Functions
Commits an extension snapshot transition unless semantic Editor state superseded it.
Commits frontend capabilities and viewport dimensions as one connection observation.
Atomically selects a theme and recolors parser-owned highlights.
Drops extension feature state across the live workspace, tab snapshots, and shell stash.
Drops one feature source across the live workspace, tab snapshots, and shell stash.
Enters the zero-buffer launchpad and retires every departing file tab operation.
Purely installs a workflow-calculated buffer shell transition into the root.
Atomically integrates a fresh asynchronous receipt or returns its stale reason.
Atomically integrates a synchronous focused renderer receipt.
Purely adds or activates a buffer across workspace and lifecycle owners.
Removes a retired buffer across every root owner that retains its identity.
Clears workspace and render observations after frontend state loss.
Commits a frontend resize to workspace and frontend owners atomically.
Restores a tab context and installs synthesized defaults for a brand-new tab.
Retires tab-scoped LSP correlations and their operation feedback atomically.
Advances the semantic render revision and installs it through the Render owner.
Purely switches tab-owned root values and returns the selected tab.
Transfers one queued keyframe request to the renderer boundary.
Types
@type backend() :: MingaEditor.State.Frontend.backend()
@type buffer_registration_result() :: :already_registered | {:monitor, pid()}
Focused result from a pure buffer-registration transition.
@type cmd_hover_link() :: MingaEditor.Session.State.cmd_hover_link()
Transient Cmd/Ctrl-hover go-to-definition link range, or nil.
@type document_highlight() :: Minga.LSP.DocumentHighlight.t()
A document highlight range from the LSP server.
@type events_registry() :: Minga.Events.registry()
Event bus registry used by this editor instance.
@type keymap_server() :: Minga.Keymap.server()
Re-export of Minga.Keymap.server/0 for editor-state callers.
@type line_number_style() :: :hybrid | :absolute | :relative | :none
Line number display style.
@type options_server() :: Minga.Config.Options.server()
Re-export of Minga.Config.Options.server/0 for editor-state callers.
@type render_receipt_result() :: :applied | {:stale, MingaEditor.State.RenderCorrelation.freshness_reason() | :shell_identity}
@type rendering_policy() :: MingaEditor.State.Frontend.rendering_policy()
@type shell_state() :: MingaEditor.Shell.shell_state()
@type t() :: %MingaEditor.State{ agent_connection: MingaEditor.State.AgentConnection.t(), appearance: MingaEditor.State.Appearance.t(), buffer_lifecycle: MingaEditor.State.BufferLifecycle.t(), effect_scheduler: GenServer.server() | nil, extension_surfaces: MingaEditor.State.ExtensionSurfaces.t(), feedback: MingaEditor.State.Feedback.t(), frontend: MingaEditor.State.Frontend.t(), git: MingaEditor.State.Git.t(), interaction: MingaEditor.State.Interaction.t(), lsp: MingaEditor.State.LSP.t(), parser: MingaEditor.State.Parser.t(), remote: MingaEditor.State.Remote.t(), render: MingaEditor.State.Render.t(), session: MingaEditor.State.Session.t(), shell_runtime: MingaEditor.Shell.Runtime.t(), workspace: MingaEditor.Session.State.t() }
@type tab_switch_result() :: :unchanged | {:switched, MingaEditor.State.Tab.t()}
Focused result from a pure tab-switch transition.
Functions
Commits an extension snapshot transition unless semantic Editor state superseded it.
@spec accept_frontend_ready( t(), MingaEditor.Viewport.t(), MingaEditor.Frontend.Capabilities.t() ) :: t()
Commits frontend capabilities and viewport dimensions as one connection observation.
@spec apply_theme(t(), MingaEditor.UI.Theme.t()) :: t()
Atomically selects a theme and recolors parser-owned highlights.
@spec drop_extension_feature_state_sources(t(), [MingaEditor.Shell.Entry.t()]) :: t()
Drops extension feature state across the live workspace, tab snapshots, and shell stash.
@spec drop_feature_state_source( t(), [MingaEditor.Shell.Entry.t()], MingaEditor.FeatureState.source() ) :: t()
Drops one feature source across the live workspace, tab snapshots, and shell stash.
Enters the zero-buffer launchpad and retires every departing file tab operation.
@spec install_buffer_shell_transition( t(), MingaEditor.Shell.Runtime.t(), MingaEditor.Session.State.t() ) :: t()
Purely installs a workflow-calculated buffer shell transition into the root.
@spec integrate_renderer_receipt(t(), MingaEditor.Renderer.RenderReceipt.t()) :: {t(), render_receipt_result()}
Atomically integrates a fresh asynchronous receipt or returns its stale reason.
@spec integrate_synchronous_renderer_receipt( t(), MingaEditor.Renderer.RenderReceipt.t() ) :: t()
Atomically integrates a synchronous focused renderer receipt.
@spec register_buffer(t(), pid(), MingaEditor.Shell.buffer_add_context()) :: {t(), buffer_registration_result()}
Purely adds or activates a buffer across workspace and lifecycle owners.
Removes a retired buffer across every root owner that retains its identity.
Clears workspace and render observations after frontend state loss.
@spec resize_frontend(t(), MingaEditor.Viewport.t()) :: t()
Commits a frontend resize to workspace and frontend owners atomically.
@spec restore_tab_context( t(), MingaEditor.State.Tab.context() | MingaEditor.State.Tab.legacy_context() ) :: t()
Restores a tab context and installs synthesized defaults for a brand-new tab.
@spec retire_lsp_operations_for_tab(t(), MingaEditor.State.Tab.id()) :: t()
Retires tab-scoped LSP correlations and their operation feedback atomically.
@spec submit_render_intent(t()) :: {t(), pos_integer()}
Advances the semantic render revision and installs it through the Render owner.
@spec switch_tab(t(), MingaEditor.State.Tab.id()) :: {t(), tab_switch_result()}
Purely switches tab-owned root values and returns the selected tab.
Transfers one queued keyframe request to the renderer boundary.