Enum AnsiEscapeCode

java.lang.Object
java.lang.Enum<AnsiEscapeCode>
org.refcodes.data.AnsiEscapeCode
All Implemented Interfaces:
Serializable, Comparable<AnsiEscapeCode>, java.lang.constant.Constable, org.refcodes.mixin.CodeAccessor<Byte>

public enum AnsiEscapeCode extends Enum<AnsiEscapeCode> implements org.refcodes.mixin.CodeAccessor<Byte>
This enumeration contains ANSI Escape-Codes for modifying the appearance of console output to ANSI enabled terminals. In order to compose your basic ANSI Escape-Code sequences, you may go for toEscapeSequence(AnsiEscapeCode...). Use toEscapedSequence(String) when you wish to print the ANSI Escape-Code sequence without the sequence modifying your terminal output (e.g. helpful in error messages regarding ANSI Escape-Codes).
  • Enum Constant Details

    • RESET

      public static final AnsiEscapeCode RESET
      Reset / Normal: All attributes off (reset).
    • BOLD

      public static final AnsiEscapeCode BOLD
      Bold or increased intensity:
    • FAINT

      public static final AnsiEscapeCode FAINT
      Faint (decreased intensity):
    • ITALIC

      public static final AnsiEscapeCode ITALIC
      Italic: Not widely supported. Sometimes treated as inverse.
    • UNDERLINE

      public static final AnsiEscapeCode UNDERLINE
      Underline
    • REVERSE_VIDEO

      public static final AnsiEscapeCode REVERSE_VIDEO
      Reverse Video: Swap foreground and background colors.
    • CONCEAL

      public static final AnsiEscapeCode CONCEAL
      Conceal: Not widely supported.
    • CROSSED_OUT

      public static final AnsiEscapeCode CROSSED_OUT
      Crossed-out: Characters legible but marked for deletion.
    • DEFAULT_FONT

      public static final AnsiEscapeCode DEFAULT_FONT
      Primary(default) font
    • FONT_1

      public static final AnsiEscapeCode FONT_1
      Font 1: Select alternative font 1.
    • FONT_2

      public static final AnsiEscapeCode FONT_2
      Font 2: Select alternative font 2.
    • FONT_3

      public static final AnsiEscapeCode FONT_3
      Font 3: Select alternative font 3.
    • FONT_4

      public static final AnsiEscapeCode FONT_4
      Font 4: Select alternative font 4.
    • FONT_5

      public static final AnsiEscapeCode FONT_5
      Font 5: Select alternative font 5.
    • FONT_6

      public static final AnsiEscapeCode FONT_6
      Font 6: Select alternative font 6.
    • FONT_7

      public static final AnsiEscapeCode FONT_7
      Font 7: Select alternative font 7.
    • FONT_8

      public static final AnsiEscapeCode FONT_8
      Font 8: Select alternative font 8.
    • FONT_9

      public static final AnsiEscapeCode FONT_9
      Font 9: Select alternative font 9.
    • FRAKTUR

      public static final AnsiEscapeCode FRAKTUR
      Fraktur: Rarely supported.
    • DOUBLY_UNDERLINE_OR_BOLD_OFF

      public static final AnsiEscapeCode DOUBLY_UNDERLINE_OR_BOLD_OFF
      Doubly underline or Bold off: Double-underline per ECMA-48.
    • NORMAL_COLOR_OR_INTENSITY

      public static final AnsiEscapeCode NORMAL_COLOR_OR_INTENSITY
      Normal color or intensity: Neither bold nor faint.
    • NOT_ITALIC_NOT_FRAKTUR

      public static final AnsiEscapeCode NOT_ITALIC_NOT_FRAKTUR
      Not italic: Not Fraktur.
    • UNDERLINE_OFF

      public static final AnsiEscapeCode UNDERLINE_OFF
      Underline off: Not singly or doubly underlined.
    • INVERSE_OFF

      public static final AnsiEscapeCode INVERSE_OFF
      Inverse off
    • REVEAL

      public static final AnsiEscapeCode REVEAL
      Reveal: Conceal off.
    • NOT_CROSSED_OUT

      public static final AnsiEscapeCode NOT_CROSSED_OUT
      Not crossed out
    • FG_BLACK

      public static final AnsiEscapeCode FG_BLACK
      Foreground Black: Set foreground color.
    • FG_RED

      public static final AnsiEscapeCode FG_RED
      Foreground Red: Set foreground color.
    • FG_GREEN

      public static final AnsiEscapeCode FG_GREEN
      Foreground Green: Set foreground color.
    • FG_YELLOW

      public static final AnsiEscapeCode FG_YELLOW
      Foreground Yellow: Set foreground color.
    • FG_BLUE

      public static final AnsiEscapeCode FG_BLUE
      Foreground Blue: Set foreground color.
    • FG_MAGENTA

      public static final AnsiEscapeCode FG_MAGENTA
      Foreground Magenta: Set foreground color.
    • FG_CYAN

      public static final AnsiEscapeCode FG_CYAN
      Foreground Cyan: Set foreground color.
    • FG_WHITE

      public static final AnsiEscapeCode FG_WHITE
      Foreground White: Set foreground color.
    • SET_FOREGROUND_COLOR

      public static final AnsiEscapeCode SET_FOREGROUND_COLOR
      Set foreground color: Next arguments are 5;n or 2;r;g;b, see below:
      • ESC[38:5:(n)m: Select foreground color, (n) represents an index into a predefined 256-color lookup table
      • ESC[38;2;(r);(g);(b)m: Select RGB foreground color, (r) represents the 8 bit red portion of an RGB color, (g) represents the 8 bit green portion of an RGB color, (b) represents the 8 bit blue portion of an RGB color
    • DEFAULT_FOREGROUND_COLOR

      public static final AnsiEscapeCode DEFAULT_FOREGROUND_COLOR
      Default foreground color: implementation defined (according to standard)
    • BG_BLACK

      public static final AnsiEscapeCode BG_BLACK
      Background Black: Set background color.
    • BG_RED

      public static final AnsiEscapeCode BG_RED
      Background Red: Set background color.
    • BG_GREEN

      public static final AnsiEscapeCode BG_GREEN
      Background Green: Set background color.
    • BG_YELLOW

      public static final AnsiEscapeCode BG_YELLOW
      Background Yellow: Set background color.
    • BG_BLUE

      public static final AnsiEscapeCode BG_BLUE
      Background Blue: Set background color.
    • BG_MAGENTA

      public static final AnsiEscapeCode BG_MAGENTA
      Background Magenta: Set background color.
    • BG_CYAN

      public static final AnsiEscapeCode BG_CYAN
      Background Cyan: Set background color.
    • BG_WHITE

      public static final AnsiEscapeCode BG_WHITE
      Background White: Set background color.
    • SET_BACKGROUND_COLOR

      public static final AnsiEscapeCode SET_BACKGROUND_COLOR
      Set background color: Next arguments are 5;n or 2;r;g;b, see below:
      • ESC[48:5:(n)m; Select background color, (n) represents an index into a predefined 256-color lookup table
      • ESC[48;2;(r);(g);(b)m: Select RGB background color, (r) represents the 8 bit red portion of an RGB color, (g) represents the 8 bit green portion of an RGB color, (b) represents the 8 bit blue portion of an RGB color
    • DEFAULT_BACKGROUND_COLOR

      public static final AnsiEscapeCode DEFAULT_BACKGROUND_COLOR
      Default background color: implementation defined (according to standard)
    • FRAMED

      public static final AnsiEscapeCode FRAMED
      Framed
    • ENCIRCLED

      public static final AnsiEscapeCode ENCIRCLED
      Encircled
    • OVERLINED

      public static final AnsiEscapeCode OVERLINED
      Overlined
    • NOT_FRAMED

      public static final AnsiEscapeCode NOT_FRAMED
      Not framed or encircled
    • NOT_OVERLINED

      public static final AnsiEscapeCode NOT_OVERLINED
      Not overlined
    • IDEOGRAM_UNDERLINE_OR_RIGHT_SIDE_LINE

      public static final AnsiEscapeCode IDEOGRAM_UNDERLINE_OR_RIGHT_SIDE_LINE
      Ideogram underline or right side line: Rarely supported.
    • IDEOGRAM_DOUBLE_UNDERLINE_OR_DOUBLE_LINE_ON_THE_RIGHT_SIDE

      public static final AnsiEscapeCode IDEOGRAM_DOUBLE_UNDERLINE_OR_DOUBLE_LINE_ON_THE_RIGHT_SIDE
      Ideogram double underline or double line on the right side : Rarely supported.
    • IDEOGRAM_OVERLINE_OR_LEFT_SIDE_LINE

      public static final AnsiEscapeCode IDEOGRAM_OVERLINE_OR_LEFT_SIDE_LINE
      Ideogram overline or left side line : Rarely supported.
    • IDEOGRAM_DOUBLE_OVERLINE_OR_DOUBLE_LINE_ON_THE_LEFT_SIDE

      public static final AnsiEscapeCode IDEOGRAM_DOUBLE_OVERLINE_OR_DOUBLE_LINE_ON_THE_LEFT_SIDE
      Ideogram double overline or double line on the left side : Rarely supported.
    • IDEOGRAM_STRESS_MARKING

      public static final AnsiEscapeCode IDEOGRAM_STRESS_MARKING
      Ideogram stress marking : Rarely supported.
    • IDEOGRAM_ATTRIBUTES_OFF

      public static final AnsiEscapeCode IDEOGRAM_ATTRIBUTES_OFF
      Ideogram attributes off: Reset the effects of all of 60–64.
    • FG_BRIGHT_BLACK

      public static final AnsiEscapeCode FG_BRIGHT_BLACK
      Foreground Bright Black: Set bright foreground color (aixterm (not in standard)).
    • FG_BRIGHT_RED

      public static final AnsiEscapeCode FG_BRIGHT_RED
      Foreground Bright Red: Set bright foreground color (aixterm (not in standard)).
    • FG_BRIGHT_GREEN

      public static final AnsiEscapeCode FG_BRIGHT_GREEN
      Foreground Bright Green: Set bright foreground color (aixterm (not in standard)).
    • FG_BRIGHT_YELLOW

      public static final AnsiEscapeCode FG_BRIGHT_YELLOW
      Foreground Bright Yellow: Set bright foreground color (aixterm (not in standard)).
    • FG_BRIGHT_BLUE

      public static final AnsiEscapeCode FG_BRIGHT_BLUE
      Foreground Bright Blue: Set bright foreground color (aixterm (not in standard)).
    • FG_BRIGHT_MAGENTA

      public static final AnsiEscapeCode FG_BRIGHT_MAGENTA
      Foreground Bright Magenta: Set bright foreground color (aixterm (not in standard)).
    • FG_BRIGHT_CYAN

      public static final AnsiEscapeCode FG_BRIGHT_CYAN
      Foreground Bright Cyan: Set bright foreground color (aixterm (not in standard)).
    • FG_BRIGHT_WHITE

      public static final AnsiEscapeCode FG_BRIGHT_WHITE
      Foreground Bright White: Set bright foreground color (aixterm (not in standard)).
    • FG_BRIGHT_DEFAULT

      public static final AnsiEscapeCode FG_BRIGHT_DEFAULT
      Foreground Bright Default: Set bright foreground color (aixterm (not in standard)).
    • BG_BRIGHT_BLACK

      public static final AnsiEscapeCode BG_BRIGHT_BLACK
      Background Bright Black: Set bright background color (aixterm (not in standard)).
    • BG_BRIGHT_RED

      public static final AnsiEscapeCode BG_BRIGHT_RED
      Background Bright Red: Set bright background color (aixterm (not in standard)).
    • BG_BRIGHT_GREEN

      public static final AnsiEscapeCode BG_BRIGHT_GREEN
      Background Bright Green: Set bright background color (aixterm (not in standard)).
    • BG_BRIGHT_YELLOW

      public static final AnsiEscapeCode BG_BRIGHT_YELLOW
      Background Bright Yellow: Set bright background color (aixterm (not in standard)).
    • BG_BRIGHT_BLUE

      public static final AnsiEscapeCode BG_BRIGHT_BLUE
      Background Bright Blue: Set bright background color (aixterm (not in standard)).
    • BG_BRIGHT_MAGENTA

      public static final AnsiEscapeCode BG_BRIGHT_MAGENTA
      Background Bright Magenta: Set bright background color (aixterm (not in standard)).
    • BG_BRIGHT_CYAN

      public static final AnsiEscapeCode BG_BRIGHT_CYAN
      Background Bright Cyan: Set bright background color (aixterm (not in standard)).
    • BG_BRIGHT_WHITE

      public static final AnsiEscapeCode BG_BRIGHT_WHITE
      Background Bright White: Set bright background color (aixterm (not in standard)).
    • BG_BRIGHT_DEFAULT

      public static final AnsiEscapeCode BG_BRIGHT_DEFAULT
      Background Bright Default: Set bright background color (aixterm (not in standard)).
  • Field Details

    • ESCAPE

      public static char ESCAPE
      The ANSI Escape-Code with which each ANSI escape sequence is commenced.
    • ESCAPE_SUFFIX

      public static char ESCAPE_SUFFIX
      The ANSI Escape-Code with which each ANSI escape sequence is concluded.
    • ESCAPE_PARAMETER_DELIMITER

      public static char ESCAPE_PARAMETER_DELIMITER
      The delimiter used to separate the parameters of an ANSI Escape-Sequence, e.g. the parameters "0", "1" and ""4" of the sequence "<ESC>[0;1;4m".
    • ESCAPE_PREFIX_DELIMITER

      public static char ESCAPE_PREFIX_DELIMITER
      The delimiter used to separate the leading Escape-Code <ESC> of an ANSI Escape-Sequence from the succeeding portion, e.g. "[" separates <ESC> from "[0;1;4m" of the sequence "<ESC>[0;1;4m".
    • RGB_COLOR_SELECTOR_PARAMETER

      public static char RGB_COLOR_SELECTOR_PARAMETER
      In case of SET_FOREGROUND_COLOR or SET_BACKGROUND_COLOR, the RGB_COLOR_SELECTOR_PARAMETER specifies that the succeeding parameters represent RGB values.
    • COLOR_TABLE_SELECTOR_PARAMETER

      public static char COLOR_TABLE_SELECTOR_PARAMETER
      In case of SET_FOREGROUND_COLOR or SET_BACKGROUND_COLOR, the COLOR_TABLE_SELECTOR_PARAMETER specifies that the succeeding parameter represents an index into the ANSI Color-Table.
  • Method Details

    • values

      public static AnsiEscapeCode[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static AnsiEscapeCode valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum type has no constant with the specified name
      NullPointerException - if the argument is null
    • getCode

      public Byte getCode()
      Specified by:
      getCode in interface org.refcodes.mixin.CodeAccessor<Byte>
    • toEscapeSequence

      public String toEscapeSequence()
      Returns the plain ANSI escape sequence for this AnsiEscapeCode element. Use toEscapeSequence(AnsiEscapeCode...) if you require an ANSI escape sequence consisting of more than just one AnsiEscapeCode.
      Returns:
      The correctly generated Escape-Code sequence directly printable to System.out.
    • toEscapeSequence

      public static String toEscapeSequence(AnsiEscapeCode... aAnsiEscapeCodes)
      Basic functionality to create an ANSI Escape-Code sequence from the provided AnsiEscapeCode elements directly printable to System.out. This method can only provide placeholder such as ${n0}, ${n1}, ... for elements SET_FOREGROUND_COLOR and SET_BACKGROUND_COLOR (the numbers correspond to the order of their appearance). Consider building your sequence manually in case you want to use a RGB value instead of an index into the ANSI Color-Table.
      Parameters:
      aAnsiEscapeCodes - The Escape-Codes to be included in the Escape-Code sequence.
      Returns:
      The correctly generated Escape-Code sequence directly printable to System.out.
    • toEscapedSequence

      public static String toEscapedSequence(String aEscapeSequence)
      Makes the provided Escape-Sequence printable by replacing the ESCAPE code with a printable char sequence. This means that the Escape-Sequence is disabled so that it will be printed out as plain text.
      Parameters:
      aEscapeSequence - The Escape-Sequence to be printed out as plain text.
      Returns:
      The plain text representation of the given Escape-Sequence.
    • toEscapedSequenceRegions

      public static Region[] toEscapedSequenceRegions(String aEscapedString)
      Retrieves a list of regions (begin index, end index ) with ANSI escape codes. The begin index is being included and the end index is being excluded by the returned regions.
      Parameters:
      aEscapedString - The String for which to find the Region elements containing ANSI escape codes.
      Returns:
      The list of regions with ANSI escape codes.
    • toUnescapedString

      public static String toUnescapedString(String aEscapedString)
      Removes any ANSI escape codes from the provided String.
      Parameters:
      aEscapedString - The (potentially) ANSI escaped String.
      Returns:
      The String without any ANSI escape codes.
    • toUnescapedLength

      public static int toUnescapedLength(String aEscapedString)
      Returns the effective length of the given String by ignoring any ANSI escape codes contained within the provided String.
      Parameters:
      aEscapedString - The (potentially) ANSI escaped String.
      Returns:
      The length of the String without any ANSI escape codes being counted.
    • toLength

      public static int toLength(String aText, boolean hasAnsiEscapeCodes)
      Returns the length of the text, considering whether the text is expected to have ANSI escape codes not considered to be part of the length.
      Parameters:
      aText - The text for which to get the length.
      hasAnsiEscapeCodes - Whether to take any (non printable) ANSI escape codes into account which would, when not being considered, cause wrong results.
      Returns:
      The according print length.
    • toEscaped

      public String toEscaped()
      Returns the escaped ANSI Escape-Code to be printable without triggering the actual ANSI escape commands.
      Returns:
      The escaped ANSI Escape-Code.