mirror of
				https://github.com/nsnail/spectre.console.git
				synced 2025-10-31 17:15:28 +08:00 
			
		
		
		
	 Patrik Svensson
					Patrik Svensson
				
			
				
					committed by
					
						 Patrik Svensson
						Patrik Svensson
					
				
			
			
				
	
			
			
			 Patrik Svensson
						Patrik Svensson
					
				
			
						parent
						
							22d4af4482
						
					
				
				
					commit
					9aa36c4cf0
				
			| @@ -99,13 +99,12 @@ namespace Spectre.Console.Tests.Unit.Composition | |||||||
|         } |         } | ||||||
|  |  | ||||||
|         [Fact] |         [Fact] | ||||||
|         public void Should_Render_Grid_Column_Padding_Correctly() |         public void Should_Use_Default_Padding() | ||||||
|         { |         { | ||||||
|             // Given |             // Given | ||||||
|             var console = new PlainConsole(width: 80); |             var console = new PlainConsole(width: 80); | ||||||
|             var grid = new Grid(); |             var grid = new Grid(); | ||||||
|             grid.AddColumn(new GridColumn { Padding = new Padding(3, 0) }); |             grid.AddColumns(3); | ||||||
|             grid.AddColumns(2); |  | ||||||
|             grid.AddRow("Foo", "Bar", "Baz"); |             grid.AddRow("Foo", "Bar", "Baz"); | ||||||
|             grid.AddRow("Qux", "Corgi", "Waldo"); |             grid.AddRow("Qux", "Corgi", "Waldo"); | ||||||
|             grid.AddRow("Grault", "Garply", "Fred"); |             grid.AddRow("Grault", "Garply", "Fred"); | ||||||
| @@ -115,9 +114,32 @@ namespace Spectre.Console.Tests.Unit.Composition | |||||||
|  |  | ||||||
|             // Then |             // Then | ||||||
|             console.Lines.Count.ShouldBe(3); |             console.Lines.Count.ShouldBe(3); | ||||||
|             console.Lines[0].ShouldBe("   Foo    Bar     Baz  "); |             console.Lines[0].ShouldBe("Foo     Bar     Baz  "); | ||||||
|             console.Lines[1].ShouldBe("   Qux    Corgi   Waldo"); |             console.Lines[1].ShouldBe("Qux     Corgi   Waldo"); | ||||||
|             console.Lines[2].ShouldBe("   Grault Garply  Fred "); |             console.Lines[2].ShouldBe("Grault  Garply  Fred "); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         [Fact] | ||||||
|  |         public void Should_Render_Explicit_Grid_Column_Padding_Correctly() | ||||||
|  |         { | ||||||
|  |             // Given | ||||||
|  |             var console = new PlainConsole(width: 80); | ||||||
|  |             var grid = new Grid(); | ||||||
|  |             grid.AddColumn(new GridColumn { Padding = new Padding(3, 0) }); | ||||||
|  |             grid.AddColumn(new GridColumn { Padding = new Padding(0, 0) }); | ||||||
|  |             grid.AddColumn(new GridColumn { Padding = new Padding(0, 3) }); | ||||||
|  |             grid.AddRow("Foo", "Bar", "Baz"); | ||||||
|  |             grid.AddRow("Qux", "Corgi", "Waldo"); | ||||||
|  |             grid.AddRow("Grault", "Garply", "Fred"); | ||||||
|  |  | ||||||
|  |             // When | ||||||
|  |             console.Render(grid); | ||||||
|  |  | ||||||
|  |             // Then | ||||||
|  |             console.Lines.Count.ShouldBe(3); | ||||||
|  |             console.Lines[0].ShouldBe("   Foo   Bar   Baz     "); | ||||||
|  |             console.Lines[1].ShouldBe("   Qux   Corgi Waldo   "); | ||||||
|  |             console.Lines[2].ShouldBe("   GraultGarplyFred    "); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         [Fact] |         [Fact] | ||||||
|   | |||||||
| @@ -254,9 +254,9 @@ namespace Spectre.Console.Tests.Unit.Composition | |||||||
|  |  | ||||||
|             // Then |             // Then | ||||||
|             console.Lines.Count.ShouldBe(3); |             console.Lines.Count.ShouldBe(3); | ||||||
|             console.Lines[0].ShouldBe("Foo     Bar     Baz  "); |             console.Lines[0].ShouldBe("Foo    Bar    Baz  "); | ||||||
|             console.Lines[1].ShouldBe("Qux     Corgi   Waldo"); |             console.Lines[1].ShouldBe("Qux    Corgi  Waldo"); | ||||||
|             console.Lines[2].ShouldBe("Grault  Garply  Fred "); |             console.Lines[2].ShouldBe("Grault Garply Fred "); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         [Fact] |         [Fact] | ||||||
|   | |||||||
| @@ -21,6 +21,7 @@ namespace Spectre.Console | |||||||
|                 Border = BorderKind.None, |                 Border = BorderKind.None, | ||||||
|                 ShowHeaders = false, |                 ShowHeaders = false, | ||||||
|                 IsGrid = true, |                 IsGrid = true, | ||||||
|  |                 PadRightCell = false, | ||||||
|             }; |             }; | ||||||
|         } |         } | ||||||
|  |  | ||||||
| @@ -55,11 +56,14 @@ namespace Spectre.Console | |||||||
|                 throw new ArgumentNullException(nameof(column)); |                 throw new ArgumentNullException(nameof(column)); | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  |             // Only pad the most right cell if we've explicitly set a padding. | ||||||
|  |             _table.PadRightCell = column.Padding != null; | ||||||
|  |  | ||||||
|             _table.AddColumn(new TableColumn(string.Empty) |             _table.AddColumn(new TableColumn(string.Empty) | ||||||
|             { |             { | ||||||
|                 Width = column.Width, |                 Width = column.Width, | ||||||
|                 NoWrap = column.NoWrap, |                 NoWrap = column.NoWrap, | ||||||
|                 Padding = column.Padding, |                 Padding = column.Padding ?? new Padding(0, 2), | ||||||
|                 Alignment = column.Alignment, |                 Alignment = column.Alignment, | ||||||
|             }); |             }); | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ namespace Spectre.Console | |||||||
|         /// <summary> |         /// <summary> | ||||||
|         /// Gets or sets the padding of the column. |         /// Gets or sets the padding of the column. | ||||||
|         /// </summary> |         /// </summary> | ||||||
|         public Padding Padding { get; set; } = new Padding(0, 1); |         public Padding? Padding { get; set; } = null; | ||||||
|  |  | ||||||
|         /// <summary> |         /// <summary> | ||||||
|         /// Gets or sets the alignment of the column. |         /// Gets or sets the alignment of the column. | ||||||
|   | |||||||
| @@ -53,8 +53,14 @@ namespace Spectre.Console | |||||||
|         /// </summary> |         /// </summary> | ||||||
|         public bool SafeBorder { get; set; } = true; |         public bool SafeBorder { get; set; } = true; | ||||||
|  |  | ||||||
|  |         // Whether this is a grid or not. | ||||||
|         internal bool IsGrid { get; set; } = false; |         internal bool IsGrid { get; set; } = false; | ||||||
|  |  | ||||||
|  |         // Whether or not the most right cell should be padded. | ||||||
|  |         // This is almost always the case, unless we're rendering | ||||||
|  |         // a grid without explicit padding in the last cell. | ||||||
|  |         internal bool PadRightCell { get; set; } = true; | ||||||
|  |  | ||||||
|         /// <summary> |         /// <summary> | ||||||
|         /// Initializes a new instance of the <see cref="Table"/> class. |         /// Initializes a new instance of the <see cref="Table"/> class. | ||||||
|         /// </summary> |         /// </summary> | ||||||
| @@ -279,7 +285,7 @@ namespace Spectre.Console | |||||||
|                         } |                         } | ||||||
|  |  | ||||||
|                         // Pad column on the right side |                         // Pad column on the right side | ||||||
|                         if (showBorder || (hideBorder && !lastCell) || (IsGrid && !lastCell)) |                         if (showBorder || (hideBorder && !lastCell) || (hideBorder && lastCell && IsGrid && PadRightCell)) | ||||||
|                         { |                         { | ||||||
|                             var rightPadding = _columns[cellIndex].Padding.Right; |                             var rightPadding = _columns[cellIndex].Padding.Right; | ||||||
|                             if (rightPadding > 0) |                             if (rightPadding > 0) | ||||||
| @@ -293,7 +299,7 @@ namespace Spectre.Console | |||||||
|                             // Add right column edge |                             // Add right column edge | ||||||
|                             result.Add(new Segment(border.GetPart(BorderPart.CellRight))); |                             result.Add(new Segment(border.GetPart(BorderPart.CellRight))); | ||||||
|                         } |                         } | ||||||
|                         else if (showBorder || (hideBorder && !lastCell)) |                         else if (showBorder) | ||||||
|                         { |                         { | ||||||
|                             // Add column separator |                             // Add column separator | ||||||
|                             result.Add(new Segment(border.GetPart(BorderPart.CellSeparator))); |                             result.Add(new Segment(border.GetPart(BorderPart.CellSeparator))); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user