Bari.Console.UI.ConsoleUserInterface.Message C# (CSharp) Method

Message() public method

Outputs a message to the user. The message can be single or multiline.

The following formatting options must be supported: *Emphasis* `command line or code example` =Heading=

public Message ( string message ) : void
message string The message to be shown
return void
        public void Message(string message)
        {
            System.Console.ForegroundColor = ConsoleColor.Gray;

            bool inEmphasis = false;
            bool inExample = false;
            bool inHeading = false;
            bool isEscaping = false;

            System.Console.Write(IndentString);

            foreach (var ch in message)
            {
                if (ch == '*' && !isEscaping)
                {
                    inEmphasis = !inEmphasis;
                    ChangeColor(inEmphasis, inExample, inHeading);
                }
                else if (ch == '`' && !isEscaping)
                {
                    inExample = !inExample;
                    ChangeColor(inEmphasis, inExample, inHeading);
                }
                else if (ch == '=' && !isEscaping)
                {
                    inHeading = !inHeading;
                    ChangeColor(inEmphasis, inExample, inHeading);
                }
                else
                {
                    System.Console.Write(ch);
                }

                isEscaping = ch == '\\';
            }

            System.Console.ForegroundColor = ConsoleColor.Gray;
            System.Console.WriteLine();
        }