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

Internal retained visual-row entry for semantic window builds.

# `t`

```elixir
@type t() :: %MingaEditor.RenderModel.Window.VisualRow{
  buf_line: non_neg_integer(),
  display_row: non_neg_integer(),
  indent_width: non_neg_integer(),
  input_hash: non_neg_integer() | nil,
  reused?: boolean(),
  row: Minga.RenderModel.Window.Row.t(),
  row_width: non_neg_integer(),
  source_end_byte: non_neg_integer(),
  source_end_col: non_neg_integer(),
  source_start_byte: non_neg_integer(),
  source_start_col: non_neg_integer(),
  source_text: String.t(),
  visual_index: non_neg_integer(),
  wrap_line_hash: non_neg_integer() | nil
}
```

# `new`

```elixir
@spec new(
  Minga.RenderModel.Window.Row.t(),
  String.t(),
  non_neg_integer(),
  non_neg_integer(),
  non_neg_integer(),
  non_neg_integer(),
  non_neg_integer()
) :: t()
```

# `reposition`

```elixir
@spec reposition(t(), non_neg_integer()) :: t()
```

# `retained_row`

```elixir
@spec retained_row(t()) ::
  {Minga.RenderModel.Window.Row.row_id(),
   {non_neg_integer(), Minga.RenderModel.Window.Row.t()}}
```

# `reused?`

```elixir
@spec reused?(t()) :: boolean()
```

# `with_display_row`

```elixir
@spec with_display_row(t(), non_neg_integer()) :: t()
```

# `with_retention`

```elixir
@spec with_retention(t(), non_neg_integer(), boolean()) :: t()
```

# `with_wrap_line_hash`

```elixir
@spec with_wrap_line_hash(t(), non_neg_integer()) :: t()
```

---

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