Parser connection and parser-derived presentation state.
Highlight caches, injection ranges, and per-buffer face registries are kept together so buffer retirement and parser availability transitions cannot leave one parser-derived surface behind.
Summary
Functions
Commits syntax-highlight presentation caches.
Commits live parser injection ranges.
Records the parser manager serving this editor.
Creates parser state for the configured parser manager.
Reconciles the face override registry associated with a buffer.
Records parser availability for editor presentation.
Drops every parser-derived presentation value associated with a buffer.
Types
@type face_override_registries() :: %{ required(pid()) => MingaEditor.UI.Face.Registry.t() }
@type injection_ranges() :: %{ required(pid()) => [Minga.Language.Highlight.InjectionRange.t()] }
@type status() :: MingaEditor.Shell.Traditional.Modeline.parser_status()
@type t() :: %MingaEditor.State.Parser{ face_override_registries: face_override_registries(), highlighting: MingaEditor.State.Highlighting.t(), injection_ranges: injection_ranges(), parser_manager: GenServer.server(), parser_status: status() }
Functions
@spec accept_highlighting(t(), MingaEditor.State.Highlighting.t()) :: t()
Commits syntax-highlight presentation caches.
@spec accept_injection_ranges(t(), injection_ranges()) :: t()
Commits live parser injection ranges.
@spec connect_manager(t(), GenServer.server()) :: t()
Records the parser manager serving this editor.
@spec new(GenServer.server()) :: t()
Creates parser state for the configured parser manager.
@spec reconcile_face_overrides(t(), pid(), MingaEditor.UI.Face.Registry.t() | nil) :: t()
Reconciles the face override registry associated with a buffer.
Records parser availability for editor presentation.
Drops every parser-derived presentation value associated with a buffer.