Skip to content

Commit 2744686

Browse files
committed
Support getting task messages from a subfolder if present
1 parent ac359d7 commit 2744686

File tree

4 files changed

+18
-4
lines changed

4 files changed

+18
-4
lines changed

src/StructuredLogger/Analyzers/CscTaskAnalyzer.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public static (Folder Analyzers, Folder Generators) Analyze(Task task)
1515
Folder currentReport = null;
1616
Folder parent = null;
1717

18-
foreach (var message in task.Children.OfType<Message>().ToArray())
18+
foreach (var message in task.GetMessages().ToArray())
1919
{
2020
var text = message.Text;
2121
if (text.StartsWith(Strings.TotalAnalyzerExecutionTime, StringComparison.Ordinal))

src/StructuredLogger/ObjectModel/Task.cs

+15-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
namespace Microsoft.Build.Logging.StructuredLogger
1+
using System.Collections.Generic;
2+
using System.Linq;
3+
4+
namespace Microsoft.Build.Logging.StructuredLogger
25
{
36
public class Task : TimedNode, IHasSourceFile, IHasLineNumber
47
{
@@ -11,6 +14,17 @@ public class Task : TimedNode, IHasSourceFile, IHasLineNumber
1114
public virtual bool IsDerivedTask => this.GetType() != typeof(Task);
1215

1316
public int? LineNumber { get; set; }
17+
18+
public IReadOnlyList<Message> GetMessages()
19+
{
20+
TreeNode node = this;
21+
if (this.FindChild<Folder>(Strings.Messages) is Folder messagesFolder)
22+
{
23+
node = messagesFolder;
24+
}
25+
26+
return node.Children.OfType<Message>().ToArray();
27+
}
1428
}
1529

1630
public class MSBuildTask : Task

src/StructuredLogger/ObjectModel/Tasks/CopyTask.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ protected virtual IEnumerable<FileCopyOperation> GetFileCopyOperations()
2121
List<FileCopyOperation> list = new List<FileCopyOperation>();
2222

2323
Match match;
24-
foreach (var message in this.Children.OfType<Message>())
24+
foreach (var message in this.GetMessages())
2525
{
2626
var text = message.Text;
2727

src/StructuredLogger/ObjectModel/Tasks/RobocopyTask.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ protected override IEnumerable<FileCopyOperation> GetFileCopyOperations()
1818
List<FileCopyOperation> list = new List<FileCopyOperation>();
1919

2020
Match match;
21-
foreach (var message in Children.OfType<Message>())
21+
foreach (var message in GetMessages())
2222
{
2323
var text = message.Text;
2424

0 commit comments

Comments
 (0)