private void SymbolAction(SymbolAnalysisContext context, NamingStylePreferencesInfo preferences, ISymbolCategorizationService categorizationService) { NamingRule applicableRule; if (preferences.TryGetApplicableRule(context.Symbol, categorizationService, out applicableRule)) { string failureReason; if (applicableRule.EnforcementLevel != DiagnosticSeverity.Hidden && !applicableRule.IsNameCompliant(context.Symbol.Name, out failureReason)) { var descriptor = new DiagnosticDescriptor(IDEDiagnosticIds.NamingRuleId, s_localizableTitleNamingStyle, string.Format(FeaturesResources._0_naming_violation_1, applicableRule.Title, failureReason), DiagnosticCategory.Style, applicableRule.EnforcementLevel, isEnabledByDefault: true); var builder = ImmutableDictionary.CreateBuilder <string, string>(); builder[nameof(NamingStyle)] = applicableRule.NamingStyle.CreateXElement().ToString(); builder["OptionName"] = nameof(SimplificationOptions.NamingPreferences); builder["OptionLanguage"] = context.Compilation.Language; context.ReportDiagnostic(Diagnostic.Create(descriptor, context.Symbol.Locations.First(), builder.ToImmutable())); } } }
private void SymbolAction(SymbolAnalysisContext context, NamingStylePreferencesInfo preferences) { if (preferences.TryGetApplicableRule(context.Symbol, out var applicableRule)) { if (applicableRule.EnforcementLevel != DiagnosticSeverity.Hidden && !applicableRule.IsNameCompliant(context.Symbol.Name, out var failureReason)) { var descriptor = new DiagnosticDescriptor(IDEDiagnosticIds.NamingRuleId, s_localizableTitleNamingStyle, string.Format(FeaturesResources.Naming_rule_violation_0, failureReason), DiagnosticCategory.Style, applicableRule.EnforcementLevel, isEnabledByDefault: true); var builder = ImmutableDictionary.CreateBuilder<string, string>(); builder[nameof(NamingStyle)] = applicableRule.NamingStyle.CreateXElement().ToString(); builder["OptionName"] = nameof(SimplificationOptions.NamingPreferences); builder["OptionLanguage"] = context.Compilation.Language; context.ReportDiagnostic(Diagnostic.Create(descriptor, context.Symbol.Locations.First(), builder.ToImmutable())); } } }