ExRatatui.Text.Span (ExRatatui v0.8.2)

Copy Markdown View Source

A single styled run of text — the smallest rich-text primitive.

A span is a single line of text with its own style. Spans are composed into ExRatatui.Text.Lines, which are composed into ExRatatui.Text.

Fields

  • :content - the span's text (no embedded newlines)
  • :style - %ExRatatui.Style{} applied to the span

Examples

iex> alias ExRatatui.Text.Span
iex> alias ExRatatui.Style
iex> Span.new("hello")
%ExRatatui.Text.Span{content: "hello", style: %ExRatatui.Style{}}

iex> alias ExRatatui.Text.Span
iex> alias ExRatatui.Style
iex> Span.new("error", style: %Style{fg: :red, modifiers: [:bold]})
%ExRatatui.Text.Span{
  content: "error",
  style: %ExRatatui.Style{fg: :red, bg: nil, modifiers: [:bold]}
}

Newlines in span content raise ArgumentError — split into multiple spans inside a Line, or multiple Lines inside a Text:

iex> ExRatatui.Text.Span.new("a\nb")
** (ArgumentError) Span content cannot contain newlines; use multiple Lines instead

Summary

Functions

Builds a %Span{} with the given content and options.

Types

t()

@type t() :: %ExRatatui.Text.Span{content: String.t(), style: ExRatatui.Style.t()}

Functions

new(content, opts \\ [])

@spec new(
  String.t(),
  keyword()
) :: t()

Builds a %Span{} with the given content and options.

Options:

  • :style - a %ExRatatui.Style{} (default: %Style{})

Raises ArgumentError if content contains \n.