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

Companion:
object
class Object
trait Matchable
class Any

Value members

Concrete methods

def ++(other: Str): Str

Concatenates two fansi.Strs, preserving the colors in each one and avoiding any interference between them

Concatenates two fansi.Strs, preserving the colors in each one and avoiding any interference between them

override def equals(other: Any): Boolean
Definition Classes
Any
def getChar(i: Int): Char

Retrieve the character of this string at the given character index

Retrieve the character of this string at the given character index

def getChars: Array[Char]

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

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

def getColor(i: Int): State

Retrieve the color of this string at the given character index

Retrieve the color of this string at the given character index

def getColors: Array[State]

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

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

override def hashCode(): Int
Definition Classes
Any
def 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

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

def overlay(attrs: Attrs, start: Int, end: Int): Str

Overlays the desired color over the specified range of the fansi.Str.

Overlays the desired color over the specified range of the fansi.Str.

def overlayAll(overlays: Seq[(Attrs, Int, Int)]): Str

Batch version of overlay, letting you apply a bunch of Attrs onto various parts of the same string in one operation, avoiding the unnecessary copying that would happen if you applied them with overlay one by one.

Batch version of overlay, letting you apply a bunch of Attrs onto various parts of the same string in one operation, avoiding the unnecessary copying that would happen if you applied them with overlay one by one.

The input sequence of overlay-tuples is applied from left to right

def 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.

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.

def splitAt(index: Int): (Str, Str)

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

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

Value parameters:
index

the plain-text index of the point within the fansi.Str you want to use to split it.

def substring(start: Int, end: Int): 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

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

override def toString: String
Definition Classes
Any

Concrete fields

lazy val plainText: String

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

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