/// <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));
Example #2
0
        /// <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);
        }