ExRatatui.Text.Line (ExRatatui v0.8.2)

Copy Markdown View Source

A single line of text composed of one or more ExRatatui.Text.Spans.

A line may carry its own style (merged over any parent Text/widget style) and its own alignment, which overrides the widget's default alignment for that line when set.

Fields

  • :spans - list of %ExRatatui.Text.Span{}
  • :style - %ExRatatui.Style{} applied to the line (layered with Span styles)
  • :alignment - :left, :center, :right, or nil (inherit)

Examples

iex> alias ExRatatui.Text.{Line, Span}
iex> alias ExRatatui.Style
iex> Line.new([Span.new("Hello "), Span.new("world", style: %Style{fg: :green})])
%ExRatatui.Text.Line{
  spans: [
    %ExRatatui.Text.Span{content: "Hello ", style: %ExRatatui.Style{}},
    %ExRatatui.Text.Span{
      content: "world",
      style: %ExRatatui.Style{fg: :green, bg: nil, modifiers: []}
    }
  ],
  style: %ExRatatui.Style{},
  alignment: nil
}

iex> alias ExRatatui.Text.{Line, Span}
iex> alias ExRatatui.Style
iex> Line.new([Span.new("centered")], style: %Style{modifiers: [:bold]}, alignment: :center)
%ExRatatui.Text.Line{
  spans: [%ExRatatui.Text.Span{content: "centered", style: %ExRatatui.Style{}}],
  style: %ExRatatui.Style{fg: nil, bg: nil, modifiers: [:bold]},
  alignment: :center
}

Summary

Functions

Builds a %Line{} from a list of spans and options.

Types

alignment()

@type alignment() :: :left | :center | :right | nil

t()

@type t() :: %ExRatatui.Text.Line{
  alignment: alignment(),
  spans: [ExRatatui.Text.Span.t()],
  style: ExRatatui.Style.t()
}

Functions

new(spans, opts \\ [])

@spec new(
  [ExRatatui.Text.Span.t()],
  keyword()
) :: t()

Builds a %Line{} from a list of spans and options.

Options:

  • :style - a %ExRatatui.Style{} (default: %Style{})
  • :alignment - :left, :center, :right, or nil (default: nil)

Raises ArgumentError for an invalid :alignment value.