public void Write(IRenderable renderable)
 {
     foreach (var segment in renderable.GetSegments(this))
     {
         Profile.Out.Write(segment.Text);
     }
 }
        public void Write(IRenderable renderable)
        {
            var builder = new StringBuilder();

            foreach (var segment in renderable.GetSegments(_console))
            {
                if (segment.IsControlCode)
                {
                    builder.Append(segment.Text);
                    continue;
                }

                var parts = segment.Text.NormalizeNewLines().Split(new[] { '\n' });
                foreach (var(_, _, last, part) in parts.Enumerate())
                {
                    if (!string.IsNullOrEmpty(part))
                    {
                        builder.Append(_builder.GetAnsi(part, segment.Style));
                    }

                    if (!last)
                    {
                        builder.Append(Environment.NewLine);
                    }
                }
            }

            if (builder.Length > 0)
            {
                _console.Profile.Out.Write(builder.ToString());
                _console.Profile.Out.Flush();
            }
        }
Beispiel #3
0
    public static string Build(IAnsiConsole console, IRenderable renderable)
    {
        var builder = new StringBuilder();

        foreach (var segment in renderable.GetSegments(console))
        {
            if (segment.IsControlCode)
            {
                builder.Append(segment.Text);
                continue;
            }

            var parts = segment.Text.NormalizeNewLines().Split(new[] { '\n' });
            foreach (var(_, _, last, part) in parts.Enumerate())
            {
                if (!string.IsNullOrEmpty(part))
                {
                    builder.Append(Build(console.Profile, part, segment.Style));
                }

                if (!last)
                {
                    builder.Append(Environment.NewLine);
                }
            }
        }

        return(builder.ToString());
    }
Beispiel #4
0
        public void Write(IRenderable renderable)
        {
            foreach (var segment in renderable.GetSegments(_console))
            {
                if (segment.IsControlCode)
                {
                    continue;
                }

                if (_lastStyle?.Equals(segment.Style) != true)
                {
                    SetStyle(segment.Style);
                }

                _console.Profile.Out.Write(segment.Text.NormalizeNewLines(native: true));
            }
        }
Beispiel #5
0
    /// <inheritdoc/>
    public void Write(IRenderable renderable)
    {
        if (EmitAnsiSequences)
        {
            _console.Write(renderable);
        }
        else
        {
            foreach (var segment in renderable.GetSegments(this))
            {
                if (segment.IsControlCode)
                {
                    continue;
                }

                Profile.Out.Writer.Write(segment.Text);
            }
        }
    }