mirror of
				https://github.com/nsnail/spectre.console.git
				synced 2025-11-01 01:25:27 +08:00 
			
		
		
		
	Merge pull request #1303 from nils-a/feature/GH-684
This commit is contained in:
		| @@ -23,6 +23,7 @@ public static class Program | ||||
|             .FullSize() | ||||
|             .Width(60) | ||||
|             .ShowPercentage() | ||||
|             .WithValueColor(Color.Orange1) | ||||
|             .AddItem("SCSS", 37, Color.Red) | ||||
|             .AddItem("HTML", 28.3, Color.Blue) | ||||
|             .AddItem("C#", 22.6, Color.Green) | ||||
|   | ||||
| @@ -297,4 +297,21 @@ public static class BreakdownChartExtensions | ||||
|         chart.Compact = compact; | ||||
|         return chart; | ||||
|     } | ||||
|  | ||||
|     /// <summary> | ||||
|     /// Sets the <see cref="BreakdownChart.ValueColor"/>. | ||||
|     /// </summary> | ||||
|     /// <param name="chart">The breakdown chart.</param> | ||||
|     /// <param name="color">The <see cref="Color"/> to set.</param> | ||||
|     /// <returns>The same instance so that multiple calls can be chained.</returns> | ||||
|     public static BreakdownChart WithValueColor(this BreakdownChart chart, Color color) | ||||
|     { | ||||
|         if (chart is null) | ||||
|         { | ||||
|             throw new ArgumentNullException(nameof(chart)); | ||||
|         } | ||||
|  | ||||
|         chart.ValueColor = color; | ||||
|         return chart; | ||||
|     } | ||||
| } | ||||
| @@ -30,6 +30,11 @@ public sealed class BreakdownChart : Renderable, IHasCulture, IExpandable | ||||
|     /// </summary> | ||||
|     public Func<double, CultureInfo, string>? ValueFormatter { get; set; } | ||||
|  | ||||
|     /// <summary> | ||||
|     /// Gets or sets the Color in which the values will be shown. | ||||
|     /// </summary> | ||||
|     public Color ValueColor { get; set; } = Color.Grey; | ||||
|  | ||||
|     /// <summary> | ||||
|     /// Gets or sets a value indicating whether or not the | ||||
|     /// chart and tags should be rendered in compact mode. | ||||
| @@ -94,6 +99,7 @@ public sealed class BreakdownChart : Renderable, IHasCulture, IExpandable | ||||
|                 Culture = Culture, | ||||
|                 ShowTagValues = ShowTagValues, | ||||
|                 ValueFormatter = ValueFormatter, | ||||
|                 ValueColor = ValueColor, | ||||
|             }); | ||||
|         } | ||||
|  | ||||
|   | ||||
| @@ -8,6 +8,7 @@ internal sealed class BreakdownTags : Renderable | ||||
|     public CultureInfo? Culture { get; set; } | ||||
|     public bool ShowTagValues { get; set; } = true; | ||||
|     public Func<double, CultureInfo, string>? ValueFormatter { get; set; } | ||||
|     public Color ValueColor { get; set; } = Color.Grey; | ||||
|  | ||||
|     public BreakdownTags(List<IBreakdownChartItem> data) | ||||
|     { | ||||
| @@ -55,8 +56,9 @@ internal sealed class BreakdownTags : Renderable | ||||
|  | ||||
|         if (ShowTagValues) | ||||
|         { | ||||
|             return string.Format(culture, "{0} [grey]{1}[/]", | ||||
|             return string.Format(culture, "{0} [{1}]{2}[/]", | ||||
|                 item.Label.EscapeMarkup(), | ||||
|                 ValueColor.ToMarkup(), | ||||
|                 formatter(item.Value, culture)); | ||||
|         } | ||||
|  | ||||
|   | ||||
| @@ -0,0 +1,3 @@ | ||||
| [38;5;9m████████████████████████[0m[38;5;12m█████████████████[0m[38;5;2m█████████████[0m[38;5;11m███[0m[38;5;119m███[0m | ||||
| [38;5;9m■[0m SCSS [38;5;9m37[0m    [38;5;12m■[0m HTML [38;5;9m28.3[0m     [38;5;2m■[0m C# [38;5;9m22.6[0m    [38;5;11m■[0m JavaScript [38;5;9m6[0m     | ||||
| [38;5;119m■[0m Ruby [38;5;9m6[0m     [38;5;14m■[0m Shell [38;5;9m0.1[0m                                     | ||||
| @@ -127,6 +127,21 @@ public sealed class BreakdownChartTests | ||||
|         await Verifier.Verify(console.Output); | ||||
|     } | ||||
|  | ||||
|     [Fact] | ||||
|     [Expectation("ValueColor")] | ||||
|     public async Task Should_Render_Correct_ValueColor() | ||||
|     { | ||||
|         // Given | ||||
|         var console = new TestConsole().EmitAnsiSequences(); | ||||
|         var chart = Fixture.GetChart().Width(60).WithValueColor(Color.Red); | ||||
|  | ||||
|         // When | ||||
|         console.Write(chart); | ||||
|  | ||||
|         // Then | ||||
|         await Verifier.Verify(console.Output); | ||||
|     } | ||||
|  | ||||
|     public static class Fixture | ||||
|     { | ||||
|         public static BreakdownChart GetChart() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Patrik Svensson
					Patrik Svensson