ObjectPrinter.Utilties.IndentableTextWriter.Write C# (CSharp) Method

Write() public method

Write this value
public Write ( char value ) : void
value char
return void
        public override void Write(char value)
        {
            if (value == '\r')
            {
                _lastCharacterWasCarriageReturn = true;
                //we're overriding the newline so ignore carriage returns
                return;
            }

            if (value == '\n')
            {
                WriteNewLine();
            }
            else
            {
                if (_lastCharacterWasCarriageReturn)
                {
                    WriteNewLine();
                }
                if (_tabsNext)
                {
                    WriteTabs();
                }
                _innerWriter.Write(value);
            }
        }

Usage Example

        public void should_alter_tab_depth_with_indent_and_outdent()
        {
            var sb = new StringBuilder();
            var writer = new IndentableTextWriter(new StringWriter(sb), "\t", "\n");

            writer.Write("a small");
            writer.WriteLine(" test");
            writer.Indent();
            writer.WriteLine("determines\n");
            writer.Outdent();
            writer.Write("if\r");
            writer.Indent();
            writer.WriteLine("this");
            writer.WriteLine("\twill");
            writer.Indent();
            writer.WriteLine("work");

            sb.ToString().Should().Be("a small test\n\tdetermines\n\nif\n\tthis\n\t\twill\n\t\twork\n");
            Console.Out.WriteLine(sb.ToString());
        }