# `MingaEditor.State.Interaction`
[🔗](https://github.com/jsmestad/minga/blob/main/lib/minga_editor/state/interaction.ex#L1)

Per-editor input configuration and transient interaction history.

The value owns editing-model selection, isolated keymap/options services,
and keystroke history used by input diagnostics.

# `editing_model`

```elixir
@type editing_model() :: :vim | :cua
```

# `t`

```elixir
@type t() :: %MingaEditor.State.Interaction{
  editing_model: editing_model(),
  keymap_server: Minga.Keymap.server(),
  keystroke_history: MingaEditor.KeystrokeHistory.t(),
  options_server: Minga.Config.Options.server()
}
```

# `accept_keystroke_history`

```elixir
@spec accept_keystroke_history(t(), MingaEditor.KeystrokeHistory.t()) :: t()
```

Commits keystroke history produced by the input recorder.

# `new`

```elixir
@spec new(keyword()) :: t()
```

Creates interaction state from startup configuration.

---

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