Str

class Str

Encapsulates a string with associated ANSI colors and text decorations.

This is your primary data-type when you are dealing with colored fansi strings.

Contains some basic string methods, as well as some ansi methods to e.g. apply particular colors or other decorations to particular sections of the [fansi.Str]. [render] flattens it out into a java.lang.String with all the colors present as ANSI escapes.

Avoids using Scala collections operations in favor of util.Arrays, giving 20% (on ++) to >1000% (on splitAt, subString and Str.parse) speedups

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
val length: Int

The plain-text length of this [fansi.Str], in UTF-16 characters (same as .length on a java.lang.String). If you want fancy UTF-8 lengths, use .plainText

Link copied to clipboard

The plain-text java.lang.String represented by this [fansi.Str], without all the fansi colors or other decorations

Functions

Link copied to clipboard
open operator override fun equals(other: Any?): Boolean
Link copied to clipboard
fun getChar(i: Int): Char

Retrieve the character of this string at the given character index

Link copied to clipboard

Returns a copy of the character array backing this fansi.Str, in case you want to use it to

Link copied to clipboard
fun getColor(i: Int): Long

Retrieve the color of this string at the given character index

Link copied to clipboard

Returns a copy of the colors array backing this fansi.Str, in case you want to use it to

Link copied to clipboard
open override fun hashCode(): Int
Link copied to clipboard
fun overlay(attrs: Attrs, start: Int = 0, end: Int = length): Str
Link copied to clipboard
fun overlayAll(attrs: List<Triple<Attrs, Int, Int>>): Str
Link copied to clipboard
operator fun plus(other: Str): Str

Concatenates two [fansi.Str]s, preserving the colors in each one and avoiding any interference between them

Link copied to clipboard
fun render(): String

Converts this [fansi.Str] into a java.lang.String, including all the fancy fansi colors or decorations as fansi escapes embedded within the string. "Terminates" colors at the right-most end of the resultant java.lang.String, making it safe to concat-with or embed-inside other java.lang.String without worrying about fansi colors leaking out of it.

Link copied to clipboard
fun splitAt(index: Int): Pair<Str, Str>

Splits an [fansi.Str] into two sub-strings, preserving the colors in each one.

Link copied to clipboard
fun substring(start: Int = 0, end: Int = chars.size): Str

Returns an [fansi.Str] which is a substring of this string, and has the same colors as the original section of this string did

Link copied to clipboard
open override fun toString(): String