# `MingaEditor.RenderModel.Window.ResidentSemanticState`
[🔗](https://github.com/jsmestad/minga/blob/main/lib/minga_editor/render_model/window/resident_semantic_state.ex#L1)

Renderer-owned persistent state for bounded resident semantic updates.

# `input`

```elixir
@type input() :: %{
  window_id: pos_integer(),
  content_epoch: non_neg_integer(),
  resident_build: MingaEditor.RenderModel.Window.ResidentBuild.t(),
  resident_result: map(),
  keyframe?: boolean(),
  cursor_eligible: boolean(),
  cursor_row: non_neg_integer(),
  cursor_col: non_neg_integer(),
  cursorline_bg: non_neg_integer() | nil,
  selection: term(),
  diagnostics_snapshot: {non_neg_integer(), [Minga.Diagnostics.Diagnostic.t()]},
  annotations_revision: non_neg_integer(),
  decorations: Minga.Core.Decorations.t(),
  tab_width: pos_integer(),
  guides_enabled?: boolean()
}
```

# `t`

```elixir
@type t() :: %MingaEditor.RenderModel.Window.ResidentSemanticState{
  annotations_revision: non_neg_integer(),
  content_epoch: non_neg_integer(),
  diagnostic_index: MingaEditor.RenderModel.Window.DiagnosticIndex.t(),
  diagnostics_revision: non_neg_integer(),
  guide_index: MingaEditor.RenderModel.Window.GuideIndex.t(),
  revision: pos_integer(),
  row_count: non_neg_integer(),
  row_revision: pos_integer(),
  tab_width: pos_integer()
}
```

# `build`

```elixir
@spec build(t() | nil, input()) ::
  {t(), Minga.RenderModel.Window.ResidentSemantics.t()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
