/// <summary> /// Constructs a <see cref="DiagnosticDescriptor"/> for API Replacement Analyzer. /// </summary> /// <remarks> /// Analyzer will have provided diagnostic ID, CmsApiReplacements category, /// Warning severity, HelperLinkUri, and will be enabled by default /// </remarks> /// <param name="diagnosticId">Diagnostic ID of the rule</param> /// <param name="forbiddenUsage">Message argument with forbidden usage</param> /// <param name="recommendedUsage">Message argument with recommended usage</param> /// <param name="severity">Severity of the diagnostic. It is a warning by default.</param> /// <returns>Diagnostic descriptor for API Replacement Analyzer</returns> public static DiagnosticDescriptor GetRule(string diagnosticId, string forbiddenUsage, string recommendedUsage, DiagnosticSeverity severity = DiagnosticSeverity.Warning) => new DiagnosticDescriptor( diagnosticId, title: ApiReplacementsMessagesProvider.GetTitle(forbiddenUsage, recommendedUsage), messageFormat: ApiReplacementsMessagesProvider.GetMessageFormat(recommendedUsage), category: nameof(AnalyzerCategories.CmsApiReplacements), defaultSeverity: severity, isEnabledByDefault: true, description: ApiReplacementsMessagesProvider.GetDescription(forbiddenUsage, recommendedUsage), helpLinkUri: HelpLinkUriProvider.GetHelpLink(diagnosticId));
/// <summary> /// Constructs a <see cref="DiagnosticDescriptor"/> for CMS Base Classes Analyzers. /// </summary> /// <remarks> /// Analyzer will have provided diagnostic ID, CmsBaseClass category, /// Warning severity, HelperLinkUri, and will be enabled by default /// </remarks> /// <param name="diagnosticId">Diagnostic ID of the rule</param> /// <param name="typeOfFile">Message argument with type of file that the rule applies to</param> /// <param name="suggestedBaseClass">Message argument with suggested base class to be used</param> /// <returns>Diagnostic descriptor for Base Class Analyzer</returns> public static DiagnosticDescriptor GetRule(string diagnosticId, string typeOfFile, string suggestedBaseClass) { var rule = new DiagnosticDescriptor( diagnosticId, title: new LocalizableResourceString(nameof(Resources.BaseClasses_Title), Resources.ResourceManager, typeof(Resources), typeOfFile, suggestedBaseClass), messageFormat: new LocalizableResourceString(nameof(Resources.BaseClasses_MessageFormat), Resources.ResourceManager, typeof(Resources), "{0}", suggestedBaseClass), category: nameof(AnalyzerCategories.CmsApiReplacements), defaultSeverity: DiagnosticSeverity.Warning, isEnabledByDefault: true, description: new LocalizableResourceString(nameof(Resources.BaseClasses_Description), Resources.ResourceManager, typeof(Resources), typeOfFile, suggestedBaseClass), helpLinkUri: HelpLinkUriProvider.GetHelpLink(diagnosticId)); return(rule); }