Do not split lines if width is 0

Closes #32
This commit is contained in:
Patrik Svensson
2020-08-09 11:49:58 +02:00
committed by Patrik Svensson
parent 2dd0eb9f74
commit f4d1796e40
4 changed files with 34 additions and 3 deletions

View File

@ -61,7 +61,7 @@ namespace Spectre.Console
.Where(x => x.allowWrap)
.Max(x => x.width);
var secondMaxColumn = widths.Zip(wrappable, (width, allowWrap) => allowWrap && width != maxColumn ? width : 0).Max();
var secondMaxColumn = widths.Zip(wrappable, (width, allowWrap) => allowWrap && width != maxColumn ? width : 1).Max();
var columnDifference = maxColumn - secondMaxColumn;
var ratios = widths.Zip(wrappable, (width, allowWrap) => width == maxColumn && allowWrap ? 1 : 0).ToList();
@ -96,9 +96,15 @@ namespace Spectre.Console
var minWidths = new List<int>();
var maxWidths = new List<int>();
// Include columns in measurement
var measure = ((IRenderable)column.Text).Measure(options, maxWidth);
minWidths.Add(measure.Min);
maxWidths.Add(measure.Max);
foreach (var row in rows)
{
var measure = ((IRenderable)row).Measure(options, maxWidth);
measure = ((IRenderable)row).Measure(options, maxWidth);
minWidths.Add(measure.Min);
maxWidths.Add(measure.Max);
}

View File

@ -178,6 +178,7 @@ namespace Spectre.Console
var showBorder = Border != BorderKind.None;
var hideBorder = Border == BorderKind.None;
var hasRows = _rows.Count > 0;
var maxWidth = width;
if (Width != null)
@ -303,7 +304,7 @@ namespace Spectre.Console
}
// Show header separator?
if (firstRow && showBorder && ShowHeaders)
if (firstRow && showBorder && ShowHeaders && hasRows)
{
result.Add(new Segment(border.GetPart(BorderPart.HeaderBottomLeft)));
foreach (var (columnIndex, first, lastColumn, columnWidth) in columnWidths.Enumerate())

View File

@ -141,6 +141,11 @@ namespace Spectre.Console
return Array.Empty<Segment>();
}
if (width == 0)
{
return Array.Empty<Segment>();
}
var result = new List<Segment>();
var segments = SplitLineBreaks(CreateSegments());