diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index e9a43cc..c3e7972 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -42,7 +42,7 @@
All
-
+
All
diff --git a/src/Spectre.Console.Tests/Unit/PanelTests.cs b/src/Spectre.Console.Tests/Unit/PanelTests.cs
index 8c64eee..ffa0a23 100644
--- a/src/Spectre.Console.Tests/Unit/PanelTests.cs
+++ b/src/Spectre.Console.Tests/Unit/PanelTests.cs
@@ -49,7 +49,7 @@ namespace Spectre.Console.Tests.Unit
// When
console.Render(new Panel("Hello World")
{
- Header = new Header("Greeting"),
+ Header = new PanelHeader("Greeting"),
Expand = true,
Padding = new Padding(2, 2),
});
@@ -70,7 +70,7 @@ namespace Spectre.Console.Tests.Unit
// When
console.Render(new Panel("Hello World")
{
- Header = new Header("Greeting").LeftAligned(),
+ Header = new PanelHeader("Greeting").LeftAligned(),
Expand = true,
});
@@ -90,7 +90,7 @@ namespace Spectre.Console.Tests.Unit
// When
console.Render(new Panel("Hello World")
{
- Header = new Header("Greeting").Centered(),
+ Header = new PanelHeader("Greeting").Centered(),
Expand = true,
});
@@ -110,7 +110,7 @@ namespace Spectre.Console.Tests.Unit
// When
console.Render(new Panel("Hello World")
{
- Header = new Header("Greeting").RightAligned(),
+ Header = new PanelHeader("Greeting").RightAligned(),
Expand = true,
});
@@ -130,7 +130,7 @@ namespace Spectre.Console.Tests.Unit
// When
console.Render(new Panel("Hello World")
{
- Header = new Header("Greeting"),
+ Header = new PanelHeader("Greeting"),
Expand = true,
});
diff --git a/src/Spectre.Console/Rendering/Border.Known.cs b/src/Spectre.Console/Border.Known.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Border.Known.cs
rename to src/Spectre.Console/Border.Known.cs
diff --git a/src/Spectre.Console/Rendering/Border.cs b/src/Spectre.Console/Border.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Border.cs
rename to src/Spectre.Console/Border.cs
diff --git a/src/Spectre.Console/Rendering/Borders/Ascii2Border.cs b/src/Spectre.Console/Borders/Ascii2Border.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Borders/Ascii2Border.cs
rename to src/Spectre.Console/Borders/Ascii2Border.cs
diff --git a/src/Spectre.Console/Rendering/Borders/AsciiBorder.cs b/src/Spectre.Console/Borders/AsciiBorder.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Borders/AsciiBorder.cs
rename to src/Spectre.Console/Borders/AsciiBorder.cs
diff --git a/src/Spectre.Console/Rendering/Borders/AsciiDoubleHeadBorder.cs b/src/Spectre.Console/Borders/AsciiDoubleHeadBorder.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Borders/AsciiDoubleHeadBorder.cs
rename to src/Spectre.Console/Borders/AsciiDoubleHeadBorder.cs
diff --git a/src/Spectre.Console/Rendering/Borders/DoubleBorder.cs b/src/Spectre.Console/Borders/DoubleBorder.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Borders/DoubleBorder.cs
rename to src/Spectre.Console/Borders/DoubleBorder.cs
diff --git a/src/Spectre.Console/Rendering/Borders/DoubleEdgeBorder.cs b/src/Spectre.Console/Borders/DoubleEdgeBorder.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Borders/DoubleEdgeBorder.cs
rename to src/Spectre.Console/Borders/DoubleEdgeBorder.cs
diff --git a/src/Spectre.Console/Rendering/Borders/HeavyBorder.cs b/src/Spectre.Console/Borders/HeavyBorder.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Borders/HeavyBorder.cs
rename to src/Spectre.Console/Borders/HeavyBorder.cs
diff --git a/src/Spectre.Console/Rendering/Borders/HeavyEdgeBorder.cs b/src/Spectre.Console/Borders/HeavyEdgeBorder.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Borders/HeavyEdgeBorder.cs
rename to src/Spectre.Console/Borders/HeavyEdgeBorder.cs
diff --git a/src/Spectre.Console/Rendering/Borders/HeavyHeadBorder.cs b/src/Spectre.Console/Borders/HeavyHeadBorder.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Borders/HeavyHeadBorder.cs
rename to src/Spectre.Console/Borders/HeavyHeadBorder.cs
diff --git a/src/Spectre.Console/Rendering/Borders/HorizontalBorder.cs b/src/Spectre.Console/Borders/HorizontalBorder.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Borders/HorizontalBorder.cs
rename to src/Spectre.Console/Borders/HorizontalBorder.cs
diff --git a/src/Spectre.Console/Rendering/Borders/MinimalBorder.cs b/src/Spectre.Console/Borders/MinimalBorder.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Borders/MinimalBorder.cs
rename to src/Spectre.Console/Borders/MinimalBorder.cs
diff --git a/src/Spectre.Console/Rendering/Borders/MinimalDoubleHeadBorder.cs b/src/Spectre.Console/Borders/MinimalDoubleHeadBorder.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Borders/MinimalDoubleHeadBorder.cs
rename to src/Spectre.Console/Borders/MinimalDoubleHeadBorder.cs
diff --git a/src/Spectre.Console/Rendering/Borders/MinimalHeavyHeadBorder.cs b/src/Spectre.Console/Borders/MinimalHeavyHeadBorder.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Borders/MinimalHeavyHeadBorder.cs
rename to src/Spectre.Console/Borders/MinimalHeavyHeadBorder.cs
diff --git a/src/Spectre.Console/Rendering/Borders/NoBorder.cs b/src/Spectre.Console/Borders/NoBorder.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Borders/NoBorder.cs
rename to src/Spectre.Console/Borders/NoBorder.cs
diff --git a/src/Spectre.Console/Rendering/Borders/RoundedBorder.cs b/src/Spectre.Console/Borders/RoundedBorder.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Borders/RoundedBorder.cs
rename to src/Spectre.Console/Borders/RoundedBorder.cs
diff --git a/src/Spectre.Console/Rendering/Borders/SimpleBorder.cs b/src/Spectre.Console/Borders/SimpleBorder.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Borders/SimpleBorder.cs
rename to src/Spectre.Console/Borders/SimpleBorder.cs
diff --git a/src/Spectre.Console/Rendering/Borders/SimpleHeavyBorder.cs b/src/Spectre.Console/Borders/SimpleHeavyBorder.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Borders/SimpleHeavyBorder.cs
rename to src/Spectre.Console/Borders/SimpleHeavyBorder.cs
diff --git a/src/Spectre.Console/Rendering/Borders/SquareBorder.cs b/src/Spectre.Console/Borders/SquareBorder.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Borders/SquareBorder.cs
rename to src/Spectre.Console/Borders/SquareBorder.cs
diff --git a/src/Spectre.Console/Rendering/Traits/Extensions/AlignableExtensions.cs b/src/Spectre.Console/Extensions/AlignableExtensions.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Traits/Extensions/AlignableExtensions.cs
rename to src/Spectre.Console/Extensions/AlignableExtensions.cs
diff --git a/src/Spectre.Console/Rendering/BorderExtensions.cs b/src/Spectre.Console/Extensions/BorderExtensions.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/BorderExtensions.cs
rename to src/Spectre.Console/Extensions/BorderExtensions.cs
diff --git a/src/Spectre.Console/Rendering/Traits/Extensions/ColumnExtensions.cs b/src/Spectre.Console/Extensions/ColumnExtensions.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Traits/Extensions/ColumnExtensions.cs
rename to src/Spectre.Console/Extensions/ColumnExtensions.cs
diff --git a/src/Spectre.Console/ConsoleExtensions.Markup.cs b/src/Spectre.Console/Extensions/ConsoleExtensions.Markup.cs
similarity index 100%
rename from src/Spectre.Console/ConsoleExtensions.Markup.cs
rename to src/Spectre.Console/Extensions/ConsoleExtensions.Markup.cs
diff --git a/src/Spectre.Console/ConsoleExtensions.Rendering.cs b/src/Spectre.Console/Extensions/ConsoleExtensions.Rendering.cs
similarity index 100%
rename from src/Spectre.Console/ConsoleExtensions.Rendering.cs
rename to src/Spectre.Console/Extensions/ConsoleExtensions.Rendering.cs
diff --git a/src/Spectre.Console/ConsoleExtensions.Write.cs b/src/Spectre.Console/Extensions/ConsoleExtensions.Write.cs
similarity index 100%
rename from src/Spectre.Console/ConsoleExtensions.Write.cs
rename to src/Spectre.Console/Extensions/ConsoleExtensions.Write.cs
diff --git a/src/Spectre.Console/ConsoleExtensions.WriteLine.cs b/src/Spectre.Console/Extensions/ConsoleExtensions.WriteLine.cs
similarity index 100%
rename from src/Spectre.Console/ConsoleExtensions.WriteLine.cs
rename to src/Spectre.Console/Extensions/ConsoleExtensions.WriteLine.cs
diff --git a/src/Spectre.Console/ConsoleExtensions.cs b/src/Spectre.Console/Extensions/ConsoleExtensions.cs
similarity index 100%
rename from src/Spectre.Console/ConsoleExtensions.cs
rename to src/Spectre.Console/Extensions/ConsoleExtensions.cs
diff --git a/src/Spectre.Console/Rendering/Traits/Extensions/ExpandableExtensions.cs b/src/Spectre.Console/Extensions/ExpandableExtensions.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Traits/Extensions/ExpandableExtensions.cs
rename to src/Spectre.Console/Extensions/ExpandableExtensions.cs
diff --git a/src/Spectre.Console/Rendering/GridExtensions.cs b/src/Spectre.Console/Extensions/GridExtensions.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/GridExtensions.cs
rename to src/Spectre.Console/Extensions/GridExtensions.cs
diff --git a/src/Spectre.Console/Rendering/Traits/Extensions/BorderExtensions.cs b/src/Spectre.Console/Extensions/HasBorderExtensions.cs
similarity index 99%
rename from src/Spectre.Console/Rendering/Traits/Extensions/BorderExtensions.cs
rename to src/Spectre.Console/Extensions/HasBorderExtensions.cs
index 47bd9c1..a417176 100644
--- a/src/Spectre.Console/Rendering/Traits/Extensions/BorderExtensions.cs
+++ b/src/Spectre.Console/Extensions/HasBorderExtensions.cs
@@ -5,7 +5,7 @@ namespace Spectre.Console
///
/// Contains extension methods for .
///
- public static class BorderExtensions
+ public static class HasBorderExtensions
{
///
/// Do not display a border.
diff --git a/src/Spectre.Console/Rendering/Traits/Extensions/OverflowableExtensions.cs b/src/Spectre.Console/Extensions/OverflowableExtensions.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Traits/Extensions/OverflowableExtensions.cs
rename to src/Spectre.Console/Extensions/OverflowableExtensions.cs
diff --git a/src/Spectre.Console/Rendering/Traits/Extensions/PaddableExtensions.cs b/src/Spectre.Console/Extensions/PaddableExtensions.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Traits/Extensions/PaddableExtensions.cs
rename to src/Spectre.Console/Extensions/PaddableExtensions.cs
diff --git a/src/Spectre.Console/Rendering/PanelExtensions.cs b/src/Spectre.Console/Extensions/PanelExtensions.cs
similarity index 90%
rename from src/Spectre.Console/Rendering/PanelExtensions.cs
rename to src/Spectre.Console/Extensions/PanelExtensions.cs
index 90f0fc7..84a7c38 100644
--- a/src/Spectre.Console/Rendering/PanelExtensions.cs
+++ b/src/Spectre.Console/Extensions/PanelExtensions.cs
@@ -27,7 +27,7 @@ namespace Spectre.Console
throw new ArgumentNullException(nameof(text));
}
- return SetHeader(panel, new Header(text, style, alignment));
+ return SetHeader(panel, new PanelHeader(text, style, alignment));
}
///
@@ -36,7 +36,7 @@ namespace Spectre.Console
/// The panel.
/// The header to use.
/// The same instance so that multiple calls can be chained.
- public static Panel SetHeader(this Panel panel, Header header)
+ public static Panel SetHeader(this Panel panel, PanelHeader header)
{
if (panel is null)
{
diff --git a/src/Spectre.Console/StyleExtensions.cs b/src/Spectre.Console/Extensions/StyleExtensions.cs
similarity index 100%
rename from src/Spectre.Console/StyleExtensions.cs
rename to src/Spectre.Console/Extensions/StyleExtensions.cs
diff --git a/src/Spectre.Console/Rendering/TableExtensions.cs b/src/Spectre.Console/Extensions/TableExtensions.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/TableExtensions.cs
rename to src/Spectre.Console/Extensions/TableExtensions.cs
diff --git a/src/Spectre.Console/Rendering/Traits/IAlignable.cs b/src/Spectre.Console/IAlignable.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Traits/IAlignable.cs
rename to src/Spectre.Console/IAlignable.cs
diff --git a/src/Spectre.Console/Rendering/Traits/IColumn.cs b/src/Spectre.Console/IColumn.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Traits/IColumn.cs
rename to src/Spectre.Console/IColumn.cs
diff --git a/src/Spectre.Console/Rendering/Traits/IExpandable.cs b/src/Spectre.Console/IExpandable.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Traits/IExpandable.cs
rename to src/Spectre.Console/IExpandable.cs
diff --git a/src/Spectre.Console/Rendering/Traits/IHasBorder.cs b/src/Spectre.Console/IHasBorder.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Traits/IHasBorder.cs
rename to src/Spectre.Console/IHasBorder.cs
diff --git a/src/Spectre.Console/Rendering/Traits/IOverflowable.cs b/src/Spectre.Console/IOverflowable.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Traits/IOverflowable.cs
rename to src/Spectre.Console/IOverflowable.cs
diff --git a/src/Spectre.Console/Rendering/Traits/IPaddable.cs b/src/Spectre.Console/IPaddable.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Traits/IPaddable.cs
rename to src/Spectre.Console/IPaddable.cs
diff --git a/src/Spectre.Console/Rendering/Traits/IRenderable.cs b/src/Spectre.Console/IRenderable.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Traits/IRenderable.cs
rename to src/Spectre.Console/IRenderable.cs
diff --git a/src/Spectre.Console/Rendering/Justify.cs b/src/Spectre.Console/Justify.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Justify.cs
rename to src/Spectre.Console/Justify.cs
diff --git a/src/Spectre.Console/Rendering/Overflow.cs b/src/Spectre.Console/Overflow.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Overflow.cs
rename to src/Spectre.Console/Overflow.cs
diff --git a/src/Spectre.Console/Rendering/Padding.cs b/src/Spectre.Console/Padding.cs
similarity index 100%
rename from src/Spectre.Console/Rendering/Padding.cs
rename to src/Spectre.Console/Padding.cs
diff --git a/src/Spectre.Console/Rendering/Segment.cs b/src/Spectre.Console/Rendering/Segment.cs
index 6aacc88..970d559 100644
--- a/src/Spectre.Console/Rendering/Segment.cs
+++ b/src/Spectre.Console/Rendering/Segment.cs
@@ -266,8 +266,8 @@ namespace Spectre.Console.Rendering
///
/// The segment to split.
/// The overflow strategy to use.
- /// The encodign to use.
- /// The maxiumum width.
+ /// The encoding to use.
+ /// The maximum width.
/// A list of segments that has been split.
public static List SplitOverflow(Segment segment, Overflow? overflow, Encoding encoding, int width)
{
@@ -317,7 +317,7 @@ namespace Spectre.Console.Rendering
new Segment(text, style),
Overflow.Ellipsis,
encoding,
- maxWidth).First();
+ maxWidth)[0];
}
internal static List> MakeSameHeight(int cellHeight, List> cells)
diff --git a/src/Spectre.Console/Rendering/SegmentLineEnumerator.cs b/src/Spectre.Console/Rendering/SegmentLineEnumerator.cs
index 9a64c32..a8325f6 100644
--- a/src/Spectre.Console/Rendering/SegmentLineEnumerator.cs
+++ b/src/Spectre.Console/Rendering/SegmentLineEnumerator.cs
@@ -3,20 +3,34 @@ using System.Collections.Generic;
namespace Spectre.Console.Rendering
{
- internal sealed class SegmentLineEnumerator : IEnumerable
+ ///
+ /// An enumerator for collections.
+ ///
+ public sealed class SegmentLineEnumerator : IEnumerable
{
private readonly List _lines;
- public SegmentLineEnumerator(List lines)
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The lines to enumerate.
+ public SegmentLineEnumerator(IEnumerable lines)
{
- _lines = lines;
+ if (lines is null)
+ {
+ throw new System.ArgumentNullException(nameof(lines));
+ }
+
+ _lines = new List(lines);
}
+ ///
public IEnumerator GetEnumerator()
{
return new SegmentLineIterator(_lines);
}
+ ///
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
diff --git a/src/Spectre.Console/Rendering/SegmentLineIterator.cs b/src/Spectre.Console/Rendering/SegmentLineIterator.cs
index fef5e80..acfbbfb 100644
--- a/src/Spectre.Console/Rendering/SegmentLineIterator.cs
+++ b/src/Spectre.Console/Rendering/SegmentLineIterator.cs
@@ -3,29 +3,48 @@ using System.Collections.Generic;
namespace Spectre.Console.Rendering
{
- internal sealed class SegmentLineIterator : IEnumerator
+ ///
+ /// An iterator for collections.
+ ///
+ public sealed class SegmentLineIterator : IEnumerator
{
private readonly List _lines;
private int _currentLine;
private int _currentIndex;
private bool _lineBreakEmitted;
+ ///
+ /// Gets the current segment.
+ ///
public Segment Current { get; private set; }
+
+ ///
object? IEnumerator.Current => Current;
- public SegmentLineIterator(List lines)
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The lines to iterate.
+ public SegmentLineIterator(IEnumerable lines)
{
+ if (lines is null)
+ {
+ throw new System.ArgumentNullException(nameof(lines));
+ }
+
_currentLine = 0;
_currentIndex = -1;
- _lines = lines;
+ _lines = new List(lines);
Current = Segment.Empty;
}
+ ///
public void Dispose()
{
}
+ ///
public bool MoveNext()
{
if (_currentLine > _lines.Count - 1)
@@ -88,6 +107,7 @@ namespace Spectre.Console.Rendering
return true;
}
+ ///
public void Reset()
{
_currentLine = 0;
diff --git a/src/Spectre.Console/Rendering/Table.Calculations.cs b/src/Spectre.Console/Rendering/Table.Calculations.cs
deleted file mode 100644
index 94de599..0000000
--- a/src/Spectre.Console/Rendering/Table.Calculations.cs
+++ /dev/null
@@ -1,133 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using Spectre.Console.Internal;
-using Spectre.Console.Rendering;
-
-namespace Spectre.Console
-{
- ///
- /// Represents a table.
- ///
- public sealed partial class Table
- {
- private const int EdgeCount = 2;
-
- // Calculate the widths of each column, including padding, not including borders.
- // Ported from Rich by Will McGugan, licensed under MIT.
- // https://github.com/willmcgugan/rich/blob/527475837ebbfc427530b3ee0d4d0741d2d0fc6d/rich/table.py#L394
- private List CalculateColumnWidths(RenderContext options, int maxWidth)
- {
- var width_ranges = _columns.Select(column => MeasureColumn(column, options, maxWidth)).ToArray();
- var widths = width_ranges.Select(range => range.Max).ToList();
-
- var tableWidth = widths.Sum();
-
- if (tableWidth > maxWidth)
- {
- var wrappable = _columns.Select(c => !c.NoWrap).ToList();
- widths = CollapseWidths(widths, wrappable, maxWidth);
- tableWidth = widths.Sum();
-
- // last resort, reduce columns evenly
- if (tableWidth > maxWidth)
- {
- var excessWidth = tableWidth - maxWidth;
- widths = Ratio.Reduce(excessWidth, widths.Select(_ => 1).ToList(), widths, widths);
- tableWidth = widths.Sum();
- }
- }
-
- if (tableWidth < maxWidth && ShouldExpand())
- {
- var padWidths = Ratio.Distribute(maxWidth - tableWidth, widths);
- widths = widths.Zip(padWidths, (a, b) => (a, b)).Select(f => f.a + f.b).ToList();
- }
-
- return widths;
- }
-
- // Reduce widths so that the total is less or equal to the max width.
- // Ported from Rich by Will McGugan, licensed under MIT.
- // https://github.com/willmcgugan/rich/blob/527475837ebbfc427530b3ee0d4d0741d2d0fc6d/rich/table.py#L442
- private static List CollapseWidths(List widths, List wrappable, int maxWidth)
- {
- var totalWidth = widths.Sum();
- var excessWidth = totalWidth - maxWidth;
-
- if (wrappable.AnyTrue())
- {
- while (totalWidth != 0 && excessWidth > 0)
- {
- var maxColumn = widths.Zip(wrappable, (first, second) => (width: first, allowWrap: second))
- .Where(x => x.allowWrap)
- .Max(x => x.width);
-
- 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();
- if (!ratios.Any(x => x != 0) || columnDifference == 0)
- {
- break;
- }
-
- var maxReduce = widths.Select(_ => Math.Min(excessWidth, columnDifference)).ToList();
- widths = Ratio.Reduce(excessWidth, ratios, maxReduce, widths);
-
- totalWidth = widths.Sum();
- excessWidth = totalWidth - maxWidth;
- }
- }
-
- return widths;
- }
-
- private (int Min, int Max) MeasureColumn(TableColumn column, RenderContext options, int maxWidth)
- {
- var padding = column.Padding.GetHorizontalPadding();
-
- // Predetermined width?
- if (column.Width != null)
- {
- return (column.Width.Value + padding, column.Width.Value + padding);
- }
-
- var columnIndex = _columns.IndexOf(column);
- var rows = _rows.Select(row => row[columnIndex]);
-
- var minWidths = new List();
- var maxWidths = new List();
-
- // Include columns in measurement
- var measure = column.Text.Measure(options, maxWidth);
- minWidths.Add(measure.Min);
- maxWidths.Add(measure.Max);
-
- foreach (var row in rows)
- {
- measure = row.Measure(options, maxWidth);
- minWidths.Add(measure.Min);
- maxWidths.Add(measure.Max);
- }
-
- return (minWidths.Count > 0 ? minWidths.Max() : padding,
- maxWidths.Count > 0 ? maxWidths.Max() : maxWidth);
- }
-
- private int GetExtraWidth(bool includePadding)
- {
- var hideBorder = !Border.Visible;
- var separators = hideBorder ? 0 : _columns.Count - 1;
- var edges = hideBorder ? 0 : EdgeCount;
- var padding = includePadding ? _columns.Select(x => x.Padding.GetHorizontalPadding()).Sum() : 0;
-
- if (!PadRightCell)
- {
- padding -= _columns.Last().Padding.Right;
- }
-
- return separators + edges + padding;
- }
- }
-}
diff --git a/src/Spectre.Console/Spectre.Console.csproj b/src/Spectre.Console/Spectre.Console.csproj
index 919b653..7cbecb7 100644
--- a/src/Spectre.Console/Spectre.Console.csproj
+++ b/src/Spectre.Console/Spectre.Console.csproj
@@ -10,6 +10,18 @@
+
+
+ AnsiConsole.cs
+
+
+ Color.cs
+
+
+ Border.cs
+
+
+
diff --git a/src/Spectre.Console/Style.Factory.cs b/src/Spectre.Console/Style.Factory.cs
deleted file mode 100644
index 63293d7..0000000
--- a/src/Spectre.Console/Style.Factory.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using System;
-
-namespace Spectre.Console
-{
- ///
- /// Represents color and text decoration.
- ///
- public sealed partial class Style : IEquatable