Str

replpp.shaded.fansi.Str
See theStr companion object
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

Attributes

Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

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

Attributes

override def equals(other: Any): Boolean

Compares the receiver object (this) with the argument object (that) for equivalence.

Compares the receiver object (this) with the argument object (that) for equivalence.

Any implementation of this method should be an equivalence relation:

  • It is reflexive: for any instance x of type Any, x.equals(x) should return true.
  • It is symmetric: for any instances x and y of type Any, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any instances x, y, and z of type Any if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.

If you override this method, you should verify that your implementation remains an equivalence relation. Additionally, when overriding this method it is usually necessary to override hashCode to ensure that objects which are "equal" (o1.equals(o2) returns true) hash to the same scala.Int. (o1.hashCode.equals(o2.hashCode)).

Value parameters

that

the object to compare against this object for equality.

Attributes

Returns

true if the receiver object is equivalent to the argument; false otherwise.

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

Attributes

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

Attributes

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

Attributes

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

Attributes

override def hashCode(): Int

Calculate a hash code value for the object.

Calculate a hash code value for the object.

The default hashing algorithm is platform dependent.

Note that it is allowed for two objects to have identical hash codes (o1.hashCode.equals(o2.hashCode)) yet not be equal (o1.equals(o2) returns false). A degenerate implementation could always return 0. However, it is required that if two objects are equal (o1.equals(o2) returns true) that they have identical hash codes (o1.hashCode.equals(o2.hashCode)). Therefore, when overriding this method, be sure to verify that the behavior is consistent with the equals method.

Attributes

Returns

the hash code value for this object.

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

Attributes

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.

Attributes

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

Attributes

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.

Attributes

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.

Attributes

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

Attributes

override def toString: String

Returns a string representation of the object.

Returns a string representation of the object.

The default representation is platform dependent.

Attributes

Returns

a string representation of the object.

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

Attributes