| File: Evaluation\Profiler\EvaluationLocationTabSeparatedPrettyPrinter.cs | Web Access |
| Project: src\msbuild\src\Build\Microsoft.Build.csproj (Microsoft.Build) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.Text; using Microsoft.Build.Framework.Profiler; #nullable disable namespace Microsoft.Build.Evaluation { /// <summary> /// Pretty prints an evaluation location in tab separated value (TSV) format /// </summary> internal sealed class EvaluationLocationTabSeparatedPrettyPrinter : EvaluationLocationPrettyPrinterBase { private const string Separator = "\t"; /// <inheritdoc/> internal override void AppendHeader(StringBuilder stringBuilder) { AppendDefaultHeaderWithSeparator(stringBuilder, Separator); } /// <inheritdoc/> internal override void AppendLocation(StringBuilder stringBuilder, TimeSpan totalTime, EvaluationLocation evaluationLocation, ProfiledLocation profiledLocation) { AppendDefaultLocationWithSeparator(stringBuilder, totalTime, evaluationLocation, profiledLocation, Separator); } /// <inheritdoc/> protected override string NormalizeExpression(string description, EvaluationLocationKind kind) { var text = GetElementOrConditionText(description, kind); if (string.IsNullOrEmpty(text)) { return null; } // Swap tabs for spaces, so we don't mess up the TSV format return text.Replace(Separator, " "); } } }