mirror of
				https://github.com/nsnail/spectre.console.git
				synced 2025-10-31 09:09:25 +08:00 
			
		
		
		
	 Patrik Svensson
					Patrik Svensson
				
			
				
					committed by
					
						 Patrik Svensson
						Patrik Svensson
					
				
			
			
				
	
			
			
			 Patrik Svensson
						Patrik Svensson
					
				
			
						parent
						
							2dd0eb9f74
						
					
				
				
					commit
					f4d1796e40
				
			| @@ -307,5 +307,24 @@ namespace Spectre.Console.Tests.Unit.Composition | ||||
|             console.Lines[5].ShouldBe("│ Grault │ Garply │   Fred   │"); | ||||
|             console.Lines[6].ShouldBe("└────────┴────────┴──────────┘"); | ||||
|         } | ||||
|  | ||||
|         [Fact] | ||||
|         public void Should_Render_Table_Without_Footer_If_No_Rows_Are_Added() | ||||
|         { | ||||
|             // Given | ||||
|             var console = new PlainConsole(width: 80); | ||||
|             var table = new Table(); | ||||
|             table.AddColumns("Foo", "Bar"); | ||||
|             table.AddColumn(new TableColumn("Baz") { Padding = new Padding(3, 2) }); | ||||
|  | ||||
|             // When | ||||
|             console.Render(table); | ||||
|  | ||||
|             // Then | ||||
|             console.Lines.Count.ShouldBe(3); | ||||
|             console.Lines[0].ShouldBe("┌─────┬─────┬────────┐"); | ||||
|             console.Lines[1].ShouldBe("│ Foo │ Bar │   Baz  │"); | ||||
|             console.Lines[2].ShouldBe("└─────┴─────┴────────┘"); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -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); | ||||
|             } | ||||
|   | ||||
| @@ -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()) | ||||
|   | ||||
| @@ -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()); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user