Skip to content

Package io.github.qishr.cascara.common.util

Class ColorScheme

java.lang.Object
        io.github.qishr.cascara.common.util.CommandLine.Help.ColorScheme

Enclosing Class:
    io.github.qishr.cascara.common.util.CommandLine.Help


public static class ColorScheme

All usage help message are generated with a color scheme that assigns certain styles and colors to common parts of a usage message: the command name, options, positional parameters and option parameters.Users may customize these styles by creating Help with a custom color scheme.

Note that these options and styles may not be rendered if ANSI escape codes are not enabled.

From 4.0, instances of this class are immutable.

Nested Class Summary

Modifier and Type Class Description
public static io.github.qishr.cascara.common.util.CommandLine.Help.ColorScheme.Builder Builder class to create ColorScheme instances.

Method Summary

Modifier and Type Method Description
public Text commandText(String command) Returns a Text with all command styles applied to the specified command string.
public Text optionText(String option) Returns a Text with all option styles applied to the specified option string.
public Text parameterText(String parameter) Returns a Text with all parameter styles applied to the specified parameter string.
public Text optionParamText(String optionParam) Returns a Text with all optionParam styles applied to the specified optionParam string.
public Text errorText(String error) Returns a Text with all error styles applied to the specified error string.
public Text stackTraceText(String stackTrace) Returns a Text with all stackTrace styles applied to all lines in the specified stackTrace string.
public Text stackTraceText(Throwable t) Returns a Text with all stackTrace styles applied to all lines in the stack trace of the specified Throwable.
public String richStackTraceString(Throwable t) Returns a String with the errorStyles.errorStyles applied to the stack trace lines showing the throwable class name and error message (including "Caused by:..." lines), and the stackTraceStyles.stackTraceStyles applied to the remaining stack trace of lines the specified Throwable.
public Ansi ansi() Returns the Ansi setting of this color scheme.
public List<IStyle> commandStyles() Returns the registered styles for commands in this color scheme.
public List<IStyle> optionStyles() Returns the registered styles for options in this color scheme.
public List<IStyle> parameterStyles() Returns the registered styles for positional parameters in this color scheme.
public List<IStyle> optionParamStyles() Returns the registered styles for option parameters in this color scheme.
public List<IStyle> errorStyles() Returns the registered styles for errors in this color scheme.
public List<IStyle> stackTraceStyles() Returns the registered styles for stack traces in this color scheme.
public Map<String, IStyle> customMarkupMap() Returns the custom mapping from markup names (the names of the Style enum constants, like bold, italic, fg_blue, bg_green, etc) to IStyle objects in this color scheme.
public IStyle[] parse(String commaSeparatedCodes) Converts the specified markup styles to an array of IStyle objects.
public IStyle resetStyle() Returns the style that "resets" the style state to neutral.
public boolean equals(Object obj)
public int hashCode()
public String toString()
public Text apply(String plainText, List<IStyle> styles) Returns a new Text object where all the specified styles are applied to the full length of the specified plain text.
public Text text(String stringWithMarkup) Returns a new Text object for this ColorScheme, encapsulating the specified string which may contain markup like @|bg(red),white,underline some text|@.
public String string(String stringWithMarkup) Returns a String where any markup like @|bg(red),white,underline some text|@ is ColorScheme.parse to the styles defined in this ColorScheme (if its Ansi mode is ON), or to the plain text without the markup (if this ColorScheme's Ansi mode is OFF).

Method Details

commandText

public Text commandText(String command)

Returns a Text with all command styles applied to the specified command string.

Parameters:

command - the command string to apply the registered command styles to

Returns:

a Text with all command styles applied to the specified command string


optionText

public Text optionText(String option)

Returns a Text with all option styles applied to the specified option string.

Parameters:

option - the option string to apply the registered option styles to

Returns:

a Text with all option styles applied to the specified option string


parameterText

public Text parameterText(String parameter)

Returns a Text with all parameter styles applied to the specified parameter string.

Parameters:

parameter - the parameter string to apply the registered parameter styles to

Returns:

a Text with all parameter styles applied to the specified parameter string


optionParamText

public Text optionParamText(String optionParam)

Returns a Text with all optionParam styles applied to the specified optionParam string.

Parameters:

optionParam - the option parameter string to apply the registered option parameter styles to

Returns:

a Text with all option parameter styles applied to the specified option parameter string


errorText

public Text errorText(String error)

Returns a Text with all error styles applied to the specified error string.

Parameters:

error - the error string to apply the registered error styles to

Returns:

a Text with all error styles applied to the specified error string

Since:

4.3


stackTraceText

public Text stackTraceText(String stackTrace)

Returns a Text with all stackTrace styles applied to all lines in the specified stackTrace string.

Parameters:

stackTrace - the stack trace string to apply the registered stack trace styles to

Returns:

a Text with all stack trace styles applied to the specified stack trace string

Since:

4.3


stackTraceText

public Text stackTraceText(Throwable t)

Returns a Text with all stackTrace styles applied to all lines in the stack trace of the specified Throwable.

Parameters:

t - the Throwable whose stack trace string to apply the registered stack trace styles to

Returns:

a Text with all stack trace styles applied to the stack trace of the specified Throwable

Since:

4.5


richStackTraceString

public String richStackTraceString(Throwable t)

Returns a String with the errorStyles.errorStyles applied to the stack trace lines showing the throwable class name and error message (including "Caused by:..." lines), and the stackTraceStyles.stackTraceStyles applied to the remaining stack trace of lines the specified Throwable.

Parameters:

t - the Throwable whose stack trace string to apply the error and stack trace styles to

Returns:

a String with error and stack trace styles applied to the stack trace of the specified Throwable

Since:

4.5


ansi

public Ansi ansi()

Returns the Ansi setting of this color scheme.


commandStyles

public List<IStyle> commandStyles()

Returns the registered styles for commands in this color scheme.

Since:

4.0


optionStyles

public List<IStyle> optionStyles()

Returns the registered styles for options in this color scheme.

Since:

4.0


parameterStyles

public List<IStyle> parameterStyles()

Returns the registered styles for positional parameters in this color scheme.

Since:

4.0


optionParamStyles

public List<IStyle> optionParamStyles()

Returns the registered styles for option parameters in this color scheme.

Since:

4.0


errorStyles

public List<IStyle> errorStyles()

Returns the registered styles for errors in this color scheme.

Since:

4.3


stackTraceStyles

public List<IStyle> stackTraceStyles()

Returns the registered styles for stack traces in this color scheme.

Since:

4.3


customMarkupMap

public Map<String, IStyle> customMarkupMap()

Returns the custom mapping from markup names (the names of the Style enum constants, like bold, italic, fg_blue, bg_green, etc) to IStyle objects in this color scheme.By default this returns an empty map, unless a custom map was configured.

Since:

4.2


parse

public IStyle[] parse(String commaSeparatedCodes)

Converts the specified markup styles to an array of IStyle objects.If no customMarkupMap.customMarkupMap is specified, this method delegates to Style.parse, otherwise it returns the styles found in the custom mapping for the specified markup styles.

Parameters:

commaSeparatedCodes - a string with a comma-separated list of markup styles (for example, "bold,underline,bg_red"

Since:

4.2


resetStyle

public IStyle resetStyle()

Returns the style that "resets" the style state to neutral.

Returns:

Style#reset if no customMarkupMap.customMarkupMap is defined, otherwise either the style registered with the "reset" name or an empty IStyle if no such style is registered.

Since:

4.2


equals

public boolean equals(Object obj)

Overrides:

Object


hashCode

public int hashCode()

Overrides:

Object


toString

public String toString()

Overrides:

Object


apply

public Text apply(String plainText, List<IStyle> styles)

Returns a new Text object where all the specified styles are applied to the full length of the specified plain text.

Parameters:

plainText - the string to apply all styles to. Must not contain markup!

styles - the styles to apply to the full plain text

Returns:

a new Text object

Since:

4.2


text

public Text text(String stringWithMarkup)

Returns a new Text object for this ColorScheme, encapsulating the specified string which may contain markup like @|bg(red),white,underline some text|@.

Calling toString() on the returned Text will ColorScheme.parse the markup to the styles defined in this ColorScheme (if its Ansi mode is ON), or to the plain text without the markup (if this ColorScheme's Ansi mode is OFF).

Equivalent to this.ansi().new Text(stringWithMarkup, this).

Since:

4.2

See Also:

text


string

public String string(String stringWithMarkup)

Returns a String where any markup like @|bg(red),white,underline some text|@ is ColorScheme.parse to the styles defined in this ColorScheme (if its Ansi mode is ON), or to the plain text without the markup (if this ColorScheme's Ansi mode is OFF).

Equivalent to this.ansi().new Text(stringWithMarkup, this).toString().

Since:

4.2

See Also:

string