コード例 #1
0
ファイル: Terminal.Output.cs プロジェクト: rflechner/swan
 /// <summary>
 /// Writes a line of text in the current console foreground color
 /// to the standard output
 /// </summary>
 /// <param name="text">The text.</param>
 /// <param name="color">The color.</param>
 /// <param name="writerFlags">The writer flags.</param>
 public static void WriteLine(this string text, ConsoleColor?color = null, TerminalWriters writerFlags = TerminalWriters.StandardOutput)
 {
     if (text == null)
     {
         text = string.Empty;
     }
     $"{text}{Environment.NewLine}".Write(color, writerFlags);
 }
コード例 #2
0
        /// <summary>
        ///     Writes the specified character in the default color.
        /// </summary>
        /// <param name="charCode">The character code.</param>
        /// <param name="color">The color.</param>
        /// <param name="writerFlags">The writer flags.</param>
        public static void Write(this char charCode, ConsoleColor?color = null, TerminalWriters writerFlags = TerminalWriters.StandardOutput)
        {
            lock (SyncLock)
            {
                var context = new OutputContext {
                    OutputColor = color ?? Settings.DefaultColor, OutputText = new[] { charCode }, OutputWriters = writerFlags
                };

                EnqueueOutput(context);
            }
        }
コード例 #3
0
        /// <summary>
        ///     Writes the specified text in the given color.
        /// </summary>
        /// <param name="text">The text.</param>
        /// <param name="color">The color.</param>
        /// <param name="writerFlags">The writer flags.</param>
        public static void Write(this string text, ConsoleColor?color = null, TerminalWriters writerFlags = TerminalWriters.StandardOutput)
        {
            if (text == null)
            {
                return;
            }

            lock (SyncLock)
            {
                var buffer  = OutputEncoding.GetBytes(text);
                var context = new OutputContext {
                    OutputColor = color ?? Settings.DefaultColor, OutputText = OutputEncoding.GetChars(buffer), OutputWriters = writerFlags
                };

                EnqueueOutput(context);
            }
        }
コード例 #4
0
ファイル: Terminal.Output.cs プロジェクト: rflechner/swan
        /// <summary>
        /// Writes the specified character in the default color.
        /// </summary>
        /// <param name="charCode">The character code.</param>
        /// <param name="color">The color.</param>
        /// <param name="writerFlags">The writer flags.</param>
        public static void Write(this char charCode, ConsoleColor?color = null, TerminalWriters writerFlags = TerminalWriters.StandardOutput)
        {
            lock (SyncLock)
            {
                if (color == null)
                {
                    color = Settings.DefaultColor;
                }
                var buffer  = new[] { charCode };
                var context = new OutputContext()
                {
                    OutputColor   = color.Value,
                    OutputText    = buffer,
                    OutputWriters = writerFlags
                };

                EnqueueOutput(context);
            }
        }
コード例 #5
0
        /// <summary>
        /// Writes a character a number of times, optionally adding a new line at the end.
        /// </summary>
        /// <param name="charCode">The character code.</param>
        /// <param name="color">The color.</param>
        /// <param name="count">The count.</param>
        /// <param name="newLine">if set to <c>true</c> [new line].</param>
        /// <param name="writerFlags">The writer flags.</param>
        public static void Write(byte charCode, ConsoleColor?color = null, int count = 1, bool newLine = false, TerminalWriters writerFlags = TerminalWriters.StandardOutput)
        {
            lock (SyncLock)
            {
                var bytes = new byte[count];
                for (var i = 0; i < bytes.Length; i++)
                {
                    bytes[i] = charCode;
                }

                if (newLine)
                {
                    var newLineBytes = OutputEncoding.GetBytes(Environment.NewLine);
                    bytes = bytes.Union(newLineBytes).ToArray();
                }

                var buffer  = OutputEncoding.GetChars(bytes);
                var context = new OutputContext
                {
                    OutputColor   = color ?? Settings.DefaultColor,
                    OutputText    = buffer,
                    OutputWriters = writerFlags,
                };

                EnqueueOutput(context);
            }
        }
コード例 #6
0
 /// <summary>
 /// As opposed to WriteLine methods, it prepends a Carriage Return character to the text
 /// so that the console moves the cursor one position up after the text has been written out.
 /// </summary>
 /// <param name="text">The text.</param>
 /// <param name="color">The color.</param>
 /// <param name="writerFlags">The writer flags.</param>
 public static void OverwriteLine(string text, ConsoleColor?color = null, TerminalWriters writerFlags = TerminalWriters.StandardOutput)
 {
     Write($"\r{text ?? string.Empty}", color, writerFlags);
     Flush();
     CursorLeft = 0;
 }
コード例 #7
0
 /// <summary>
 /// Writes a line of text in the current console foreground color
 /// to the standard output.
 /// </summary>
 /// <param name="text">The text.</param>
 /// <param name="color">The color.</param>
 /// <param name="writerFlags">The writer flags.</param>
 public static void WriteLine(string text, ConsoleColor?color = null, TerminalWriters writerFlags = TerminalWriters.StandardOutput)
 => Write($"{text ?? string.Empty}{Environment.NewLine}", color, writerFlags);
コード例 #8
0
 /// <summary>
 /// Writes a New Line Sequence to the standard output.
 /// </summary>
 /// <param name="writerFlags">The writer flags.</param>
 public static void WriteLine(TerminalWriters writerFlags = TerminalWriters.StandardOutput)
 => Write(Environment.NewLine, Settings.DefaultColor, writerFlags);
コード例 #9
0
        /// <summary>
        /// Writes a character a number of times, optionally adding a new line at the end.
        /// </summary>
        /// <param name="charCode">The character code.</param>
        /// <param name="color">The color.</param>
        /// <param name="count">The count.</param>
        /// <param name="newLine">if set to <c>true</c> [new line].</param>
        /// <param name="writerFlags">The writer flags.</param>
        public static void Write(char charCode, ConsoleColor?color = null, int count = 1, bool newLine = false, TerminalWriters writerFlags = TerminalWriters.StandardOutput)
        {
            lock (SyncLock)
            {
                var text = new string(charCode, count);

                if (newLine)
                {
                    text += Environment.NewLine;
                }

                var buffer  = OutputEncoding.GetBytes(text);
                var context = new OutputContext
                {
                    OutputColor   = color ?? Settings.DefaultColor,
                    OutputText    = OutputEncoding.GetChars(buffer),
                    OutputWriters = writerFlags,
                };

                EnqueueOutput(context);
            }
        }
コード例 #10
0
ファイル: Terminal.Output.cs プロジェクト: rflechner/swan
 /// <summary>
 /// As opposed to WriteLine methods, it prepends a Carriage Return character to the text
 /// so that the console moves the cursor one position up after the text has been written out.
 /// </summary>
 /// <param name="text">The text.</param>
 /// <param name="color">The color.</param>
 /// <param name="writerFlags">The writer flags.</param>
 public static void OverwriteLine(this string text, ConsoleColor?color = null, TerminalWriters writerFlags = TerminalWriters.StandardOutput)
 {
     if (text == null)
     {
         text = string.Empty;
     }
     $"\r{text}".Write(color, writerFlags);
     Flush();
     CursorLeft = 0;
 }