|
// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using ILLink.Shared;
using Microsoft.CodeAnalysis;
namespace ILLink.RoslynAnalyzer
{
public static class DiagnosticDescriptors
{
public static DiagnosticDescriptor GetDiagnosticDescriptor (DiagnosticId diagnosticId)
{
var diagnosticString = new DiagnosticString (diagnosticId);
return new DiagnosticDescriptor (diagnosticId.AsString (),
diagnosticString.GetTitleFormat (),
diagnosticString.GetMessageFormat (),
diagnosticId.GetDiagnosticCategory (),
DiagnosticSeverity.Warning,
true,
diagnosticId.GetHelpUri());
}
public static DiagnosticDescriptor GetDiagnosticDescriptor (DiagnosticId diagnosticId, DiagnosticString diagnosticString)
=> new DiagnosticDescriptor (diagnosticId.AsString (),
diagnosticString.GetTitle (),
diagnosticString.GetMessage (),
diagnosticId.GetDiagnosticCategory (),
DiagnosticSeverity.Warning,
true,
diagnosticId.GetHelpUri());
public static DiagnosticDescriptor GetDiagnosticDescriptor (DiagnosticId diagnosticId,
LocalizableResourceString? lrsTitle = null,
LocalizableResourceString? lrsMessage = null,
string? diagnosticCategory = null,
DiagnosticSeverity diagnosticSeverity = DiagnosticSeverity.Warning,
bool isEnabledByDefault = true,
string? helpLinkUri = null)
{
helpLinkUri ??= diagnosticId.GetHelpUri();
if (lrsTitle == null || lrsMessage == null) {
var diagnosticString = new DiagnosticString (diagnosticId);
return new DiagnosticDescriptor (diagnosticId.AsString (),
diagnosticString.GetTitleFormat (),
diagnosticString.GetMessageFormat (),
diagnosticCategory ?? diagnosticId.GetDiagnosticCategory (),
diagnosticSeverity,
isEnabledByDefault,
helpLinkUri);
}
return new DiagnosticDescriptor (diagnosticId.AsString (),
lrsTitle!,
lrsMessage!,
diagnosticCategory ?? diagnosticId.GetDiagnosticCategory (),
diagnosticSeverity,
isEnabledByDefault,
helpLinkUri);
}
}
}
|