Raxol.Terminal.ANSI.Parser (Raxol v0.5.0)

View Source

Provides comprehensive parsing for ANSI escape sequences. Determines the type of sequence and extracts its parameters.

Summary

Functions

Determines if a string contains ANSI escape sequences.

Parses a string containing ANSI escape sequences. Returns a list of parsed sequences.

Parses a single ANSI escape sequence. Returns a map containing the sequence type and parameters.

Strips all ANSI escape sequences from a string.

Types

sequence()

@type sequence() :: %{
  type: sequence_type(),
  command: String.t(),
  params: [String.t()],
  intermediate: String.t(),
  final: String.t(),
  text: String.t()
}

sequence_type()

@type sequence_type() :: :csi | :osc | :sos | :pm | :apc | :esc | :text

Functions

contains_ansi?(input)

@spec contains_ansi?(String.t()) :: boolean()

Determines if a string contains ANSI escape sequences.

parse(input)

@spec parse(String.t()) :: [sequence()]

Parses a string containing ANSI escape sequences. Returns a list of parsed sequences.

parse_sequence(input)

@spec parse_sequence(String.t()) :: sequence() | nil

Parses a single ANSI escape sequence. Returns a map containing the sequence type and parameters.

strip_ansi(input)

@spec strip_ansi(String.t()) :: String.t()

Strips all ANSI escape sequences from a string.