# `MingaEditor.SemanticWindow.Span`
[🔗](https://github.com/jsmestad/minga/blob/main/lib/minga_editor/semantic_window/span.ex#L1)

A highlight span with pre-resolved colors and attributes.

Spans reference display columns in the composed text (after virtual text
splicing and conceal application). The GUI frontend applies these spans
directly when building NSAttributedString; it never maps syntax tokens
to theme colors.

## Attributes byte layout

The `attrs` field packs boolean flags into a single byte:

- bit 0: bold
- bit 1: italic
- bit 2: underline
- bit 3: strikethrough
- bit 4: underline_curl (wavy diagnostic underline)

# `t`

```elixir
@type t() :: %MingaEditor.SemanticWindow.Span{
  attrs: non_neg_integer(),
  bg: non_neg_integer(),
  end_col: non_neg_integer(),
  fg: non_neg_integer(),
  font_id: non_neg_integer(),
  font_weight: non_neg_integer(),
  start_col: non_neg_integer()
}
```

# `from_face`

```elixir
@spec from_face(Minga.Core.Face.t(), non_neg_integer(), non_neg_integer()) :: t()
```

Builds a span from a `Face.t()` struct and column range.

---

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