Class Sealed
public sealed class DiagnosticBag

Namespace: Moka.Docs.Core.Diagnostics

Collects diagnostic messages during the build pipeline.

Properties

NameDescription
All All collected diagnostics.
Count Number of diagnostics.
HasErrors Whether there are any error-level diagnostics.
HasWarnings Whether there are any warning-level diagnostics.

All

IReadOnlyList<Diagnostic> DiagnosticBag.All { get; }

All collected diagnostics.

Count

int DiagnosticBag.Count { get; }

Number of diagnostics.

HasErrors

bool DiagnosticBag.HasErrors { get; }

Whether there are any error-level diagnostics.

HasWarnings

bool DiagnosticBag.HasWarnings { get; }

Whether there are any warning-level diagnostics.

Methods

NameDescription
Error(string message, string? source) Add an error diagnostic.
Info(string message, string? source) Add an info diagnostic.
Warning(string message, string? source) Add a warning diagnostic.

Error(string message, string? source)

void DiagnosticBag.Error(string message, string? source = null)

Add an error diagnostic.

Info(string message, string? source)

void DiagnosticBag.Info(string message, string? source = null)

Add an info diagnostic.

Warning(string message, string? source)

void DiagnosticBag.Warning(string message, string? source = null)

Add a warning diagnostic.

View Source
/// <summary>
///     Collects diagnostic messages during the build pipeline.
/// </summary>
public sealed class DiagnosticBag
{
    private readonly List<Diagnostic> _diagnostics = [];
    /// <summary>All collected diagnostics.</summary>
    public IReadOnlyList<Diagnostic> All => _diagnostics;
    /// <summary>Whether there are any error-level diagnostics.</summary>
    public bool HasErrors => _diagnostics.Exists(d => d.Severity == DiagnosticSeverity.Error);
    /// <summary>Whether there are any warning-level diagnostics.</summary>
    public bool HasWarnings => _diagnostics.Exists(d => d.Severity == DiagnosticSeverity.Warning);
    /// <summary>Number of diagnostics.</summary>
    public int Count => _diagnostics.Count;

    /// <summary>Add an error diagnostic.</summary>
    public void Error(string message, string? source = null)
    {
        _diagnostics.Add(new Diagnostic { Severity = DiagnosticSeverity.Error, Message = message, Source = source });
    }

    /// <summary>Add a warning diagnostic.</summary>
    public void Warning(string message, string? source = null)
    {
        _diagnostics.Add(new Diagnostic { Severity = DiagnosticSeverity.Warning, Message = message, Source = source });
    }

    /// <summary>Add an info diagnostic.</summary>
    public void Info(string message, string? source = null)
    {
        _diagnostics.Add(new Diagnostic { Severity = DiagnosticSeverity.Info, Message = message, Source = source });
    }
}
Was this page helpful?