From 6cdc1601b64528f194bce6f9ed4ba0f0f1376148 Mon Sep 17 00:00:00 2001 From: AR-May <67507805+AR-May@users.noreply.github.com> Date: Thu, 11 Apr 2024 14:06:32 +0200 Subject: [PATCH 1/2] Fix indentation --- ...bosity_FailedWithErrors.Linux.verified.txt | 9 ++- ...erbosity_FailedWithErrors.OSX.verified.txt | 9 ++- ...sity_FailedWithErrors.Windows.verified.txt | 9 ++- ...bosity_FailedWithErrors.Linux.verified.txt | 9 ++- ...erbosity_FailedWithErrors.OSX.verified.txt | 9 ++- ...sity_FailedWithErrors.Windows.verified.txt | 9 ++- ...bosity_FailedWithErrors.Linux.verified.txt | 9 ++- ...erbosity_FailedWithErrors.OSX.verified.txt | 9 ++- ...sity_FailedWithErrors.Windows.verified.txt | 9 ++- ...bosity_FailedWithErrors.Linux.verified.txt | 9 ++- ...erbosity_FailedWithErrors.OSX.verified.txt | 9 ++- ...sity_FailedWithErrors.Windows.verified.txt | 9 ++- ...bosity_FailedWithErrors.Linux.verified.txt | 5 ++ ...erbosity_FailedWithErrors.OSX.verified.txt | 5 ++ ...sity_FailedWithErrors.Windows.verified.txt | 5 ++ ...bosity_FailedWithErrors.Linux.verified.txt | 9 ++- ...erbosity_FailedWithErrors.OSX.verified.txt | 9 ++- ...sity_FailedWithErrors.Windows.verified.txt | 9 ++- src/MSBuild.UnitTests/TerminalLogger_Tests.cs | 1 + src/MSBuild/TerminalLogger/TerminalLogger.cs | 69 +++++++++++-------- 20 files changed, 161 insertions(+), 59 deletions(-) diff --git a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDetailedVerbosity_FailedWithErrors.Linux.verified.txt b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDetailedVerbosity_FailedWithErrors.Linux.verified.txt index 2a011fd87a4..94ea05fb0d6 100644 --- a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDetailedVerbosity_FailedWithErrors.Linux.verified.txt +++ b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDetailedVerbosity_FailedWithErrors.Linux.verified.txt @@ -1,9 +1,14 @@ ]9;4;3;\The plugin credential provider could not acquire credentials.Authentication may require manual action. Consider re-running the command with --interactive for `dotnet`, /p:NuGetInteractive="true" for MSBuild or removing the -NonInteractive switch for `NuGet` - project failed with 1 error(s) and 1 warning(s) (0.2s) + project failed with 1 error(s) and 2 warning(s) (0.2s) High importance message! directory/file(1,2,3,4): warning AA0000: Warning! + directory/file(1,2,3,4): warning AA0000: + A + Multi + Line + Warning! directory/file(1,2,3,4): error AA0000: Error! [?25l [?25h -Build failed with 1 error(s) and 1 warning(s) in 5.0s +Build failed with 1 error(s) and 2 warning(s) in 5.0s ]9;4;0;\ \ No newline at end of file diff --git a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDetailedVerbosity_FailedWithErrors.OSX.verified.txt b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDetailedVerbosity_FailedWithErrors.OSX.verified.txt index 94c8f8666eb..56e94ae3408 100644 --- a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDetailedVerbosity_FailedWithErrors.OSX.verified.txt +++ b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDetailedVerbosity_FailedWithErrors.OSX.verified.txt @@ -1,8 +1,13 @@ The plugin credential provider could not acquire credentials.Authentication may require manual action. Consider re-running the command with --interactive for `dotnet`, /p:NuGetInteractive="true" for MSBuild or removing the -NonInteractive switch for `NuGet` - project failed with 1 error(s) and 1 warning(s) (0.2s) + project failed with 1 error(s) and 2 warning(s) (0.2s) High importance message! directory/file(1,2,3,4): warning AA0000: Warning! + directory/file(1,2,3,4): warning AA0000: + A + Multi + Line + Warning! directory/file(1,2,3,4): error AA0000: Error! [?25l [?25h -Build failed with 1 error(s) and 1 warning(s) in 5.0s +Build failed with 1 error(s) and 2 warning(s) in 5.0s diff --git a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDetailedVerbosity_FailedWithErrors.Windows.verified.txt b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDetailedVerbosity_FailedWithErrors.Windows.verified.txt index 2a011fd87a4..94ea05fb0d6 100644 --- a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDetailedVerbosity_FailedWithErrors.Windows.verified.txt +++ b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDetailedVerbosity_FailedWithErrors.Windows.verified.txt @@ -1,9 +1,14 @@ ]9;4;3;\The plugin credential provider could not acquire credentials.Authentication may require manual action. Consider re-running the command with --interactive for `dotnet`, /p:NuGetInteractive="true" for MSBuild or removing the -NonInteractive switch for `NuGet` - project failed with 1 error(s) and 1 warning(s) (0.2s) + project failed with 1 error(s) and 2 warning(s) (0.2s) High importance message! directory/file(1,2,3,4): warning AA0000: Warning! + directory/file(1,2,3,4): warning AA0000: + A + Multi + Line + Warning! directory/file(1,2,3,4): error AA0000: Error! [?25l [?25h -Build failed with 1 error(s) and 1 warning(s) in 5.0s +Build failed with 1 error(s) and 2 warning(s) in 5.0s ]9;4;0;\ \ No newline at end of file diff --git a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDiagnosticVerbosity_FailedWithErrors.Linux.verified.txt b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDiagnosticVerbosity_FailedWithErrors.Linux.verified.txt index 2a011fd87a4..94ea05fb0d6 100644 --- a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDiagnosticVerbosity_FailedWithErrors.Linux.verified.txt +++ b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDiagnosticVerbosity_FailedWithErrors.Linux.verified.txt @@ -1,9 +1,14 @@ ]9;4;3;\The plugin credential provider could not acquire credentials.Authentication may require manual action. Consider re-running the command with --interactive for `dotnet`, /p:NuGetInteractive="true" for MSBuild or removing the -NonInteractive switch for `NuGet` - project failed with 1 error(s) and 1 warning(s) (0.2s) + project failed with 1 error(s) and 2 warning(s) (0.2s) High importance message! directory/file(1,2,3,4): warning AA0000: Warning! + directory/file(1,2,3,4): warning AA0000: + A + Multi + Line + Warning! directory/file(1,2,3,4): error AA0000: Error! [?25l [?25h -Build failed with 1 error(s) and 1 warning(s) in 5.0s +Build failed with 1 error(s) and 2 warning(s) in 5.0s ]9;4;0;\ \ No newline at end of file diff --git a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDiagnosticVerbosity_FailedWithErrors.OSX.verified.txt b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDiagnosticVerbosity_FailedWithErrors.OSX.verified.txt index 94c8f8666eb..56e94ae3408 100644 --- a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDiagnosticVerbosity_FailedWithErrors.OSX.verified.txt +++ b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDiagnosticVerbosity_FailedWithErrors.OSX.verified.txt @@ -1,8 +1,13 @@ The plugin credential provider could not acquire credentials.Authentication may require manual action. Consider re-running the command with --interactive for `dotnet`, /p:NuGetInteractive="true" for MSBuild or removing the -NonInteractive switch for `NuGet` - project failed with 1 error(s) and 1 warning(s) (0.2s) + project failed with 1 error(s) and 2 warning(s) (0.2s) High importance message! directory/file(1,2,3,4): warning AA0000: Warning! + directory/file(1,2,3,4): warning AA0000: + A + Multi + Line + Warning! directory/file(1,2,3,4): error AA0000: Error! [?25l [?25h -Build failed with 1 error(s) and 1 warning(s) in 5.0s +Build failed with 1 error(s) and 2 warning(s) in 5.0s diff --git a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDiagnosticVerbosity_FailedWithErrors.Windows.verified.txt b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDiagnosticVerbosity_FailedWithErrors.Windows.verified.txt index 2a011fd87a4..94ea05fb0d6 100644 --- a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDiagnosticVerbosity_FailedWithErrors.Windows.verified.txt +++ b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryDiagnosticVerbosity_FailedWithErrors.Windows.verified.txt @@ -1,9 +1,14 @@ ]9;4;3;\The plugin credential provider could not acquire credentials.Authentication may require manual action. Consider re-running the command with --interactive for `dotnet`, /p:NuGetInteractive="true" for MSBuild or removing the -NonInteractive switch for `NuGet` - project failed with 1 error(s) and 1 warning(s) (0.2s) + project failed with 1 error(s) and 2 warning(s) (0.2s) High importance message! directory/file(1,2,3,4): warning AA0000: Warning! + directory/file(1,2,3,4): warning AA0000: + A + Multi + Line + Warning! directory/file(1,2,3,4): error AA0000: Error! [?25l [?25h -Build failed with 1 error(s) and 1 warning(s) in 5.0s +Build failed with 1 error(s) and 2 warning(s) in 5.0s ]9;4;0;\ \ No newline at end of file diff --git a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryMinimalVerbosity_FailedWithErrors.Linux.verified.txt b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryMinimalVerbosity_FailedWithErrors.Linux.verified.txt index c0b5f816a67..0b4eb677187 100644 --- a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryMinimalVerbosity_FailedWithErrors.Linux.verified.txt +++ b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryMinimalVerbosity_FailedWithErrors.Linux.verified.txt @@ -1,8 +1,13 @@ ]9;4;3;\The plugin credential provider could not acquire credentials.Authentication may require manual action. Consider re-running the command with --interactive for `dotnet`, /p:NuGetInteractive="true" for MSBuild or removing the -NonInteractive switch for `NuGet` - project failed with 1 error(s) and 1 warning(s) (0.2s) + project failed with 1 error(s) and 2 warning(s) (0.2s) directory/file(1,2,3,4): warning AA0000: Warning! + directory/file(1,2,3,4): warning AA0000: + A + Multi + Line + Warning! directory/file(1,2,3,4): error AA0000: Error! [?25l [?25h -Build failed with 1 error(s) and 1 warning(s) in 5.0s +Build failed with 1 error(s) and 2 warning(s) in 5.0s ]9;4;0;\ \ No newline at end of file diff --git a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryMinimalVerbosity_FailedWithErrors.OSX.verified.txt b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryMinimalVerbosity_FailedWithErrors.OSX.verified.txt index f2c3daca5c7..0ac0ba155c8 100644 --- a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryMinimalVerbosity_FailedWithErrors.OSX.verified.txt +++ b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryMinimalVerbosity_FailedWithErrors.OSX.verified.txt @@ -1,7 +1,12 @@ The plugin credential provider could not acquire credentials.Authentication may require manual action. Consider re-running the command with --interactive for `dotnet`, /p:NuGetInteractive="true" for MSBuild or removing the -NonInteractive switch for `NuGet` - project failed with 1 error(s) and 1 warning(s) (0.2s) + project failed with 1 error(s) and 2 warning(s) (0.2s) directory/file(1,2,3,4): warning AA0000: Warning! + directory/file(1,2,3,4): warning AA0000: + A + Multi + Line + Warning! directory/file(1,2,3,4): error AA0000: Error! [?25l [?25h -Build failed with 1 error(s) and 1 warning(s) in 5.0s +Build failed with 1 error(s) and 2 warning(s) in 5.0s diff --git a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryMinimalVerbosity_FailedWithErrors.Windows.verified.txt b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryMinimalVerbosity_FailedWithErrors.Windows.verified.txt index c0b5f816a67..0b4eb677187 100644 --- a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryMinimalVerbosity_FailedWithErrors.Windows.verified.txt +++ b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryMinimalVerbosity_FailedWithErrors.Windows.verified.txt @@ -1,8 +1,13 @@ ]9;4;3;\The plugin credential provider could not acquire credentials.Authentication may require manual action. Consider re-running the command with --interactive for `dotnet`, /p:NuGetInteractive="true" for MSBuild or removing the -NonInteractive switch for `NuGet` - project failed with 1 error(s) and 1 warning(s) (0.2s) + project failed with 1 error(s) and 2 warning(s) (0.2s) directory/file(1,2,3,4): warning AA0000: Warning! + directory/file(1,2,3,4): warning AA0000: + A + Multi + Line + Warning! directory/file(1,2,3,4): error AA0000: Error! [?25l [?25h -Build failed with 1 error(s) and 1 warning(s) in 5.0s +Build failed with 1 error(s) and 2 warning(s) in 5.0s ]9;4;0;\ \ No newline at end of file diff --git a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryNormalVerbosity_FailedWithErrors.Linux.verified.txt b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryNormalVerbosity_FailedWithErrors.Linux.verified.txt index c0b5f816a67..0b4eb677187 100644 --- a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryNormalVerbosity_FailedWithErrors.Linux.verified.txt +++ b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryNormalVerbosity_FailedWithErrors.Linux.verified.txt @@ -1,8 +1,13 @@ ]9;4;3;\The plugin credential provider could not acquire credentials.Authentication may require manual action. Consider re-running the command with --interactive for `dotnet`, /p:NuGetInteractive="true" for MSBuild or removing the -NonInteractive switch for `NuGet` - project failed with 1 error(s) and 1 warning(s) (0.2s) + project failed with 1 error(s) and 2 warning(s) (0.2s) directory/file(1,2,3,4): warning AA0000: Warning! + directory/file(1,2,3,4): warning AA0000: + A + Multi + Line + Warning! directory/file(1,2,3,4): error AA0000: Error! [?25l [?25h -Build failed with 1 error(s) and 1 warning(s) in 5.0s +Build failed with 1 error(s) and 2 warning(s) in 5.0s ]9;4;0;\ \ No newline at end of file diff --git a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryNormalVerbosity_FailedWithErrors.OSX.verified.txt b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryNormalVerbosity_FailedWithErrors.OSX.verified.txt index f2c3daca5c7..0ac0ba155c8 100644 --- a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryNormalVerbosity_FailedWithErrors.OSX.verified.txt +++ b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryNormalVerbosity_FailedWithErrors.OSX.verified.txt @@ -1,7 +1,12 @@ The plugin credential provider could not acquire credentials.Authentication may require manual action. Consider re-running the command with --interactive for `dotnet`, /p:NuGetInteractive="true" for MSBuild or removing the -NonInteractive switch for `NuGet` - project failed with 1 error(s) and 1 warning(s) (0.2s) + project failed with 1 error(s) and 2 warning(s) (0.2s) directory/file(1,2,3,4): warning AA0000: Warning! + directory/file(1,2,3,4): warning AA0000: + A + Multi + Line + Warning! directory/file(1,2,3,4): error AA0000: Error! [?25l [?25h -Build failed with 1 error(s) and 1 warning(s) in 5.0s +Build failed with 1 error(s) and 2 warning(s) in 5.0s diff --git a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryNormalVerbosity_FailedWithErrors.Windows.verified.txt b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryNormalVerbosity_FailedWithErrors.Windows.verified.txt index c0b5f816a67..0b4eb677187 100644 --- a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryNormalVerbosity_FailedWithErrors.Windows.verified.txt +++ b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryNormalVerbosity_FailedWithErrors.Windows.verified.txt @@ -1,8 +1,13 @@ ]9;4;3;\The plugin credential provider could not acquire credentials.Authentication may require manual action. Consider re-running the command with --interactive for `dotnet`, /p:NuGetInteractive="true" for MSBuild or removing the -NonInteractive switch for `NuGet` - project failed with 1 error(s) and 1 warning(s) (0.2s) + project failed with 1 error(s) and 2 warning(s) (0.2s) directory/file(1,2,3,4): warning AA0000: Warning! + directory/file(1,2,3,4): warning AA0000: + A + Multi + Line + Warning! directory/file(1,2,3,4): error AA0000: Error! [?25l [?25h -Build failed with 1 error(s) and 1 warning(s) in 5.0s +Build failed with 1 error(s) and 2 warning(s) in 5.0s ]9;4;0;\ \ No newline at end of file diff --git a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryQuietVerbosity_FailedWithErrors.Linux.verified.txt b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryQuietVerbosity_FailedWithErrors.Linux.verified.txt index ed7d3ade9de..6e417bd1a11 100644 --- a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryQuietVerbosity_FailedWithErrors.Linux.verified.txt +++ b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryQuietVerbosity_FailedWithErrors.Linux.verified.txt @@ -1,3 +1,8 @@ ]9;4;3;\directory/file(1,2,3,4): warning AA0000: Warning! +directory/file(1,2,3,4): warning AA0000: + A + Multi + Line + Warning! directory/file(1,2,3,4): error AA0000: Error! ]9;4;0;\ \ No newline at end of file diff --git a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryQuietVerbosity_FailedWithErrors.OSX.verified.txt b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryQuietVerbosity_FailedWithErrors.OSX.verified.txt index b52d4bf957f..63b3c74b0c3 100644 --- a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryQuietVerbosity_FailedWithErrors.OSX.verified.txt +++ b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryQuietVerbosity_FailedWithErrors.OSX.verified.txt @@ -1,2 +1,7 @@ directory/file(1,2,3,4): warning AA0000: Warning! +directory/file(1,2,3,4): warning AA0000: + A + Multi + Line + Warning! directory/file(1,2,3,4): error AA0000: Error! diff --git a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryQuietVerbosity_FailedWithErrors.Windows.verified.txt b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryQuietVerbosity_FailedWithErrors.Windows.verified.txt index ed7d3ade9de..6e417bd1a11 100644 --- a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryQuietVerbosity_FailedWithErrors.Windows.verified.txt +++ b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintBuildSummaryQuietVerbosity_FailedWithErrors.Windows.verified.txt @@ -1,3 +1,8 @@ ]9;4;3;\directory/file(1,2,3,4): warning AA0000: Warning! +directory/file(1,2,3,4): warning AA0000: + A + Multi + Line + Warning! directory/file(1,2,3,4): error AA0000: Error! ]9;4;0;\ \ No newline at end of file diff --git a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintSummaryWithOverwrittenVerbosity_FailedWithErrors.Linux.verified.txt b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintSummaryWithOverwrittenVerbosity_FailedWithErrors.Linux.verified.txt index 2a011fd87a4..94ea05fb0d6 100644 --- a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintSummaryWithOverwrittenVerbosity_FailedWithErrors.Linux.verified.txt +++ b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintSummaryWithOverwrittenVerbosity_FailedWithErrors.Linux.verified.txt @@ -1,9 +1,14 @@ ]9;4;3;\The plugin credential provider could not acquire credentials.Authentication may require manual action. Consider re-running the command with --interactive for `dotnet`, /p:NuGetInteractive="true" for MSBuild or removing the -NonInteractive switch for `NuGet` - project failed with 1 error(s) and 1 warning(s) (0.2s) + project failed with 1 error(s) and 2 warning(s) (0.2s) High importance message! directory/file(1,2,3,4): warning AA0000: Warning! + directory/file(1,2,3,4): warning AA0000: + A + Multi + Line + Warning! directory/file(1,2,3,4): error AA0000: Error! [?25l [?25h -Build failed with 1 error(s) and 1 warning(s) in 5.0s +Build failed with 1 error(s) and 2 warning(s) in 5.0s ]9;4;0;\ \ No newline at end of file diff --git a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintSummaryWithOverwrittenVerbosity_FailedWithErrors.OSX.verified.txt b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintSummaryWithOverwrittenVerbosity_FailedWithErrors.OSX.verified.txt index 94c8f8666eb..56e94ae3408 100644 --- a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintSummaryWithOverwrittenVerbosity_FailedWithErrors.OSX.verified.txt +++ b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintSummaryWithOverwrittenVerbosity_FailedWithErrors.OSX.verified.txt @@ -1,8 +1,13 @@ The plugin credential provider could not acquire credentials.Authentication may require manual action. Consider re-running the command with --interactive for `dotnet`, /p:NuGetInteractive="true" for MSBuild or removing the -NonInteractive switch for `NuGet` - project failed with 1 error(s) and 1 warning(s) (0.2s) + project failed with 1 error(s) and 2 warning(s) (0.2s) High importance message! directory/file(1,2,3,4): warning AA0000: Warning! + directory/file(1,2,3,4): warning AA0000: + A + Multi + Line + Warning! directory/file(1,2,3,4): error AA0000: Error! [?25l [?25h -Build failed with 1 error(s) and 1 warning(s) in 5.0s +Build failed with 1 error(s) and 2 warning(s) in 5.0s diff --git a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintSummaryWithOverwrittenVerbosity_FailedWithErrors.Windows.verified.txt b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintSummaryWithOverwrittenVerbosity_FailedWithErrors.Windows.verified.txt index 2a011fd87a4..94ea05fb0d6 100644 --- a/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintSummaryWithOverwrittenVerbosity_FailedWithErrors.Windows.verified.txt +++ b/src/MSBuild.UnitTests/Snapshots/TerminalLogger_Tests.PrintSummaryWithOverwrittenVerbosity_FailedWithErrors.Windows.verified.txt @@ -1,9 +1,14 @@ ]9;4;3;\The plugin credential provider could not acquire credentials.Authentication may require manual action. Consider re-running the command with --interactive for `dotnet`, /p:NuGetInteractive="true" for MSBuild or removing the -NonInteractive switch for `NuGet` - project failed with 1 error(s) and 1 warning(s) (0.2s) + project failed with 1 error(s) and 2 warning(s) (0.2s) High importance message! directory/file(1,2,3,4): warning AA0000: Warning! + directory/file(1,2,3,4): warning AA0000: + A + Multi + Line + Warning! directory/file(1,2,3,4): error AA0000: Error! [?25l [?25h -Build failed with 1 error(s) and 1 warning(s) in 5.0s +Build failed with 1 error(s) and 2 warning(s) in 5.0s ]9;4;0;\ \ No newline at end of file diff --git a/src/MSBuild.UnitTests/TerminalLogger_Tests.cs b/src/MSBuild.UnitTests/TerminalLogger_Tests.cs index 955610abad2..7f89f347c25 100644 --- a/src/MSBuild.UnitTests/TerminalLogger_Tests.cs +++ b/src/MSBuild.UnitTests/TerminalLogger_Tests.cs @@ -436,6 +436,7 @@ private void CallAllTypesOfMessagesWarningAndError() MessageRaised?.Invoke(_eventSender, MakeMessageEventArgs("Normal importance message!", MessageImportance.Normal)); MessageRaised?.Invoke(_eventSender, MakeMessageEventArgs("Low importance message!", MessageImportance.Low)); WarningRaised?.Invoke(_eventSender, MakeWarningEventArgs("Warning!")); + WarningRaised?.Invoke(_eventSender, MakeWarningEventArgs("A\nMulti\r\nLine\nWarning!")); ErrorRaised?.Invoke(_eventSender, MakeErrorEventArgs("Error!")); } diff --git a/src/MSBuild/TerminalLogger/TerminalLogger.cs b/src/MSBuild/TerminalLogger/TerminalLogger.cs index dd13fbe28aa..4cdc3b347ea 100644 --- a/src/MSBuild/TerminalLogger/TerminalLogger.cs +++ b/src/MSBuild/TerminalLogger/TerminalLogger.cs @@ -858,32 +858,22 @@ private void MessageRaised(object sender, BuildMessageEventArgs e) private void WarningRaised(object sender, BuildWarningEventArgs e) { BuildEventContext? buildEventContext = e.BuildEventContext; - string message = FormatEventMessage( - category: AnsiCodes.Colorize("warning", TerminalColor.Yellow), - subcategory: e.Subcategory, - message: e.Message, - code: AnsiCodes.Colorize(e.Code, TerminalColor.Yellow), - file: HighlightFileName(e.File), - lineNumber: e.LineNumber, - endLineNumber: e.EndLineNumber, - columnNumber: e.ColumnNumber, - endColumnNumber: e.EndColumnNumber); if (buildEventContext is not null && _projects.TryGetValue(new ProjectContext(buildEventContext), out Project? project) && Verbosity > LoggerVerbosity.Quiet) { - if (IsImmediateMessage(message)) + if (!String.IsNullOrEmpty(e.Message) && IsImmediateMessage(e.Message)) { - RenderImmediateMessage(message); + RenderImmediateMessage(FormatWarningMessage(e, Indentation)); } - project.AddBuildMessage(MessageSeverity.Warning, message); + project.AddBuildMessage(MessageSeverity.Warning, FormatWarningMessage(e, $"{Indentation}{Indentation}{Indentation}")); } else { // It is necessary to display warning messages reported by MSBuild, even if it's not tracked in _projects collection or the verbosity is Quiet. - RenderImmediateMessage(message); + RenderImmediateMessage(FormatWarningMessage(e, Indentation)); _buildWarningsCount++; } } @@ -906,27 +896,17 @@ private bool IsImmediateMessage(string message) => private void ErrorRaised(object sender, BuildErrorEventArgs e) { BuildEventContext? buildEventContext = e.BuildEventContext; - string message = FormatEventMessage( - category: AnsiCodes.Colorize("error", TerminalColor.Red), - subcategory: e.Subcategory, - message: e.Message, - code: AnsiCodes.Colorize(e.Code, TerminalColor.Red), - file: HighlightFileName(e.File), - lineNumber: e.LineNumber, - endLineNumber: e.EndLineNumber, - columnNumber: e.ColumnNumber, - endColumnNumber: e.EndColumnNumber); - + if (buildEventContext is not null && _projects.TryGetValue(new ProjectContext(buildEventContext), out Project? project) && Verbosity > LoggerVerbosity.Quiet) { - project.AddBuildMessage(MessageSeverity.Error, message); + project.AddBuildMessage(MessageSeverity.Error, FormatErrorMessage(e, $"{Indentation}{Indentation}{Indentation}")); } else { // It is necessary to display error messages reported by MSBuild, even if it's not tracked in _projects collection or the verbosity is Quiet. - RenderImmediateMessage(message); + RenderImmediateMessage(FormatErrorMessage(e, Indentation)); _buildErrorsCount++; } } @@ -1070,6 +1050,36 @@ private int NodeIndexForContext(BuildEventContext context) : path; } + private string FormatWarningMessage(BuildWarningEventArgs e, string indent) + { + return FormatEventMessage( + category: AnsiCodes.Colorize("warning", TerminalColor.Yellow), + subcategory: e.Subcategory, + message: e.Message, + code: AnsiCodes.Colorize(e.Code, TerminalColor.Yellow), + file: HighlightFileName(e.File), + lineNumber: e.LineNumber, + endLineNumber: e.EndLineNumber, + columnNumber: e.ColumnNumber, + endColumnNumber: e.EndColumnNumber, + indent); + } + + private string FormatErrorMessage(BuildErrorEventArgs e, string indent) + { + return FormatEventMessage( + category: AnsiCodes.Colorize("error", TerminalColor.Red), + subcategory: e.Subcategory, + message: e.Message, + code: AnsiCodes.Colorize(e.Code, TerminalColor.Red), + file: HighlightFileName(e.File), + lineNumber: e.LineNumber, + endLineNumber: e.EndLineNumber, + columnNumber: e.ColumnNumber, + endColumnNumber: e.EndColumnNumber, + indent); + } + private string FormatEventMessage( string category, string subcategory, @@ -1079,7 +1089,8 @@ private string FormatEventMessage( int lineNumber, int endLineNumber, int columnNumber, - int endColumnNumber) + int endColumnNumber, + string indent) { message ??= string.Empty; StringBuilder builder = new(128); @@ -1133,7 +1144,7 @@ private string FormatEventMessage( // render multi-line message in a special way if (message.IndexOf('\n') >= 0) { - const string indent = $"{Indentation}{Indentation}{Indentation}"; + // Place the multiline message under the project in case of minimal and higher verbosity. string[] lines = message.Split(newLineStrings, StringSplitOptions.None); foreach (string line in lines) From 35ecbb087df665dc28773c80641970198b9e3aa9 Mon Sep 17 00:00:00 2001 From: AR-May <67507805+AR-May@users.noreply.github.com> Date: Tue, 16 Apr 2024 16:31:06 +0200 Subject: [PATCH 2/2] Fix tests and address PR comments. --- src/MSBuild/TerminalLogger/TerminalLogger.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/MSBuild/TerminalLogger/TerminalLogger.cs b/src/MSBuild/TerminalLogger/TerminalLogger.cs index 4cdc3b347ea..28aafff1ac8 100644 --- a/src/MSBuild/TerminalLogger/TerminalLogger.cs +++ b/src/MSBuild/TerminalLogger/TerminalLogger.cs @@ -64,6 +64,10 @@ public ProjectContext(BuildEventContext context) /// internal const string Indentation = " "; + internal const string DoubleIndentation = $"{Indentation}{Indentation}"; + + internal const string TripleIndentation = $"{Indentation}{Indentation}{Indentation}"; + internal const TerminalColor TargetFrameworkColor = TerminalColor.Cyan; internal Func? CreateStopwatch = null; @@ -644,7 +648,7 @@ private void ProjectFinished(object sender, ProjectFinishedEventArgs e) { foreach (BuildMessage buildMessage in project.BuildMessages) { - Terminal.WriteLine($"{Indentation}{Indentation}{buildMessage.Message}"); + Terminal.WriteLine($"{DoubleIndentation}{buildMessage.Message}"); } } @@ -863,12 +867,12 @@ private void WarningRaised(object sender, BuildWarningEventArgs e) && _projects.TryGetValue(new ProjectContext(buildEventContext), out Project? project) && Verbosity > LoggerVerbosity.Quiet) { - if (!String.IsNullOrEmpty(e.Message) && IsImmediateMessage(e.Message)) + if (!String.IsNullOrEmpty(e.Message) && IsImmediateMessage(e.Message!)) { RenderImmediateMessage(FormatWarningMessage(e, Indentation)); } - project.AddBuildMessage(MessageSeverity.Warning, FormatWarningMessage(e, $"{Indentation}{Indentation}{Indentation}")); + project.AddBuildMessage(MessageSeverity.Warning, FormatWarningMessage(e, TripleIndentation)); } else { @@ -901,7 +905,7 @@ private void ErrorRaised(object sender, BuildErrorEventArgs e) && _projects.TryGetValue(new ProjectContext(buildEventContext), out Project? project) && Verbosity > LoggerVerbosity.Quiet) { - project.AddBuildMessage(MessageSeverity.Error, FormatErrorMessage(e, $"{Indentation}{Indentation}{Indentation}")); + project.AddBuildMessage(MessageSeverity.Error, FormatErrorMessage(e, TripleIndentation)); } else {