Package picocli

Class CommandLine.Help.Ansi.Text

  • All Implemented Interfaces:
    Cloneable
    Enclosing class:
    CommandLine.Help.Ansi

    public class CommandLine.Help.Ansi.Text
    extends Object
    implements Cloneable
    Encapsulates rich text with styles and colors. Text objects may be constructed with Strings containing markup like @|bg(red),white,underline some text|@, and this class converts the markup to ANSI escape codes.

    Internally keeps both an enriched and a plain text representation to allow layout components to calculate text width while remaining unaware of the embedded ANSI escape codes.

    • Constructor Detail

      • Text

        public Text​(int maxLength)
        Constructs a Text with the specified max length (for use in a TextTable Column).
        Parameters:
        maxLength - max length of this text
      • Text

        public Text​(int maxLength,
                    CommandLine.Help.ColorScheme colorScheme)
        Constructs a Text with the specified max length (for use in a TextTable Column).
        Parameters:
        maxLength - max length of this text
        colorScheme - the colorScheme to use
        Since:
        4.2
      • Text

        public Text​(String input)
        Constructs a Text with the specified String, which may contain markup like @|bg(red),white,underline some text|@.
        Parameters:
        input - the string with markup to parse
      • Text

        public Text​(String input,
                    CommandLine.Help.ColorScheme colorScheme)
        Constructs a Text with the specified String (which may contain markup), and ColorScheme.
        Parameters:
        input - the string with markup like @|bg(red),white,underline some text|@ to parse
        colorScheme - the ColorScheme to use to map markup to replacement strings
        Since:
        4.2
    • Method Detail

      • substring

        public CommandLine.Help.Ansi.Text substring​(int start)
        Returns a new Text instance that is a substring of this Text. Does not modify this instance!
        Parameters:
        start - index in the plain text where to start the substring
        Returns:
        a new Text instance that is a substring of this Text
      • substring

        public CommandLine.Help.Ansi.Text substring​(int start,
                                                    int end)
        Returns a new Text instance that is a substring of this Text. Does not modify this instance!
        Parameters:
        start - index in the plain text where to start the substring
        end - index in the plain text where to end the substring
        Returns:
        a new Text instance that is a substring of this Text
      • concat

        public CommandLine.Help.Ansi.Text concat​(String string)
        Returns a copy of this Text instance with the specified text concatenated to the end. Does not modify this instance!
        Parameters:
        string - the text to concatenate to the end of this Text
        Returns:
        a new Text instance
        Since:
        3.0
      • concat

        public CommandLine.Help.Ansi.Text concat​(CommandLine.Help.Ansi.Text other)
        Returns a copy of this Text instance with the specified text concatenated to the end. Does not modify this instance!
        Parameters:
        other - the text to concatenate to the end of this Text
        Returns:
        a new Text instance
        Since:
        3.0
      • getStyledChars

        public void getStyledChars​(int from,
                                   int length,
                                   CommandLine.Help.Ansi.Text destination,
                                   int offset)
        Copies the specified substring of this Text into the specified destination, preserving the markup.
        Parameters:
        from - start of the substring
        length - length of the substring
        destination - destination Text to modify
        offset - indentation (padding)
      • plainString

        public String plainString()
        Returns the plain text without any formatting.
        Returns:
        the plain text without any formatting
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • toString

        public String toString()
        Returns a String representation of the text with ANSI escape codes embedded, unless ANSI is CommandLine.Help.Ansi.enabled() not enabled}, in which case the plain text is returned.
        Overrides:
        toString in class Object
        Returns:
        a String representation of the text with ANSI escape codes embedded (if enabled)
      • getCJKAdjustedLength

        public int getCJKAdjustedLength()
        Returns the number of columns this Text will occupy on the console, adjusted for wide CJK characters.
        Returns:
        the number of columns this Text will occupy on the console, adjusted for wide CJK characters
        Since:
        4.0
      • getCJKAdjustedLength

        public int getCJKAdjustedLength​(int fromPosition,
                                        int charCount)
        Returns the number of columns that the specified portion of this Text will occupy on the console, adjusted for wide CJK characters.
        Parameters:
        fromPosition - the position to start counting
        charCount - the number of characters in this Text to consider
        Returns:
        the number of columns that the specified portion of this Text will occupy on the console, adjusted for wide CJK characters
        Since:
        4.0