Skip to content

Commit 6136004

Browse files
committed
Change how the usage analyzers are enabled to use an EnumGenerator_EnableUsageAnalyzers MSBuild property instead
1 parent ced9ff8 commit 6136004

15 files changed

Lines changed: 25 additions & 41 deletions

README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -285,14 +285,15 @@ _NetEscapades.EnumGenerators_ includes optional analyzers that encourage the use
285285

286286
### Enabling the analyzers
287287

288-
The usage analyzers are disabled by default. To enable them, [add a `.globalconfig` file](https://learn.microsoft.com/dotnet/fundamentals/code-analysis/configuration-files#global-analyzerconfig) to your project with the following content:
288+
The usage analyzers are disabled by default. To enable them, set the `EnumGenerator_EnableUsageAnalyzers` MSBuild property to `true` in your project:
289289

290-
```ini
291-
is_global = true
292-
netescapades.enumgenerators.usage_analyzers.enable = true
290+
```xml
291+
<PropertyGroup>
292+
<EnumGenerator_EnableUsageAnalyzers>true</EnumGenerator_EnableUsageAnalyzers>
293+
</PropertyGroup>
293294
```
294295

295-
Your project should automatically detect this configuration file, and enable all the usage analyzers with the default severity of `Warning`.
296+
After adding this configuration, the analyzers in your project should be enabled with the default severity of `Warning`.
296297

297298
### Configuring analyzer severity (optional)
298299

src/NetEscapades.EnumGenerators/Diagnostics/UsageAnalyzers/GetNamesAnalyzer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class GetNamesAnalyzer : DiagnosticAnalyzer
2121
isEnabledByDefault: true);
2222

2323
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics
24-
=> ImmutableArray.Create(Rule, UsageAnalyzerConfig.ConfigDescriptor);
24+
=> ImmutableArray.Create(Rule);
2525

2626
public override void Initialize(AnalysisContext context)
2727
{

src/NetEscapades.EnumGenerators/Diagnostics/UsageAnalyzers/GetValuesAnalyzer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class GetValuesAnalyzer : DiagnosticAnalyzer
2121
isEnabledByDefault: true);
2222

2323
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics
24-
=> ImmutableArray.Create(Rule, UsageAnalyzerConfig.ConfigDescriptor);
24+
=> ImmutableArray.Create(Rule);
2525

2626
public override void Initialize(AnalysisContext context)
2727
{

src/NetEscapades.EnumGenerators/Diagnostics/UsageAnalyzers/GetValuesAsUnderlyingTypeAnalyzer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class GetValuesAsUnderlyingTypeAnalyzer : DiagnosticAnalyzer
2121
isEnabledByDefault: true);
2222

2323
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics
24-
=> ImmutableArray.Create(Rule, UsageAnalyzerConfig.ConfigDescriptor);
24+
=> ImmutableArray.Create(Rule);
2525

2626
public override void Initialize(AnalysisContext context)
2727
{

src/NetEscapades.EnumGenerators/Diagnostics/UsageAnalyzers/HasFlagAnalyzer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class HasFlagAnalyzer : DiagnosticAnalyzer
2121
isEnabledByDefault: true);
2222

2323
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics
24-
=> ImmutableArray.Create(Rule, UsageAnalyzerConfig.ConfigDescriptor);
24+
=> ImmutableArray.Create(Rule);
2525

2626
public override void Initialize(AnalysisContext context)
2727
{

src/NetEscapades.EnumGenerators/Diagnostics/UsageAnalyzers/IsDefinedAnalyzer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class IsDefinedAnalyzer : DiagnosticAnalyzer
2121
isEnabledByDefault: true);
2222

2323
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics
24-
=> ImmutableArray.Create(Rule, UsageAnalyzerConfig.ConfigDescriptor);
24+
=> ImmutableArray.Create(Rule);
2525

2626
public override void Initialize(AnalysisContext context)
2727
{

src/NetEscapades.EnumGenerators/Diagnostics/UsageAnalyzers/ParseAnalyzer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class ParseAnalyzer : DiagnosticAnalyzer
2121
isEnabledByDefault: true);
2222

2323
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics
24-
=> ImmutableArray.Create(Rule, UsageAnalyzerConfig.ConfigDescriptor);
24+
=> ImmutableArray.Create(Rule);
2525

2626
public override void Initialize(AnalysisContext context)
2727
{

src/NetEscapades.EnumGenerators/Diagnostics/UsageAnalyzers/ToStringAnalyzer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class ToStringAnalyzer : DiagnosticAnalyzer
2121
isEnabledByDefault: true);
2222

2323
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics
24-
=> ImmutableArray.Create(Rule, UsageAnalyzerConfig.ConfigDescriptor);
24+
=> ImmutableArray.Create(Rule);
2525

2626
public override void Initialize(AnalysisContext context)
2727
{

src/NetEscapades.EnumGenerators/Diagnostics/UsageAnalyzers/TryParseAnalyzer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class TryParseAnalyzer : DiagnosticAnalyzer
2121
isEnabledByDefault: true);
2222

2323
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics
24-
=> ImmutableArray.Create(Rule, UsageAnalyzerConfig.ConfigDescriptor);
24+
=> ImmutableArray.Create(Rule);
2525

2626
public override void Initialize(AnalysisContext context)
2727
{

src/NetEscapades.EnumGenerators/Diagnostics/UsageAnalyzers/UsageAnalyzerConfig.cs

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,7 @@ namespace NetEscapades.EnumGenerators.Diagnostics.UsageAnalyzers;
66
public static class UsageAnalyzerConfig
77
{
88
public const DiagnosticSeverity DefaultSeverity = DiagnosticSeverity.Warning;
9-
public const string EnableKey = "netescapades.enumgenerators.usage_analyzers.enable";
10-
11-
internal static readonly DiagnosticDescriptor ConfigDescriptor = new(
12-
#pragma warning disable RS2008 // Enable Analyzer Release Tracking
13-
id: "NEEGCONFIG001",
14-
#pragma warning restore RS2008
15-
title: "Enable callsite analyzers for generated enum extensions",
16-
messageFormat:
17-
"Enable analyzers to encourage use of generated extension methods instead of System.Enum methods",
18-
category: "Configuration",
19-
defaultSeverity: DiagnosticSeverity.Hidden,
20-
isEnabledByDefault: true,
21-
customTags:
22-
[
23-
"EditorConfigOption",
24-
"EditorConfigOptionKey=netescapades.enumgenerators.usage_analyzers.enable",
25-
"EditorConfigOptionDescription=Enable callsite analyzers for generated enum extensions",
26-
"EditorConfigOptionAllowedValues=true,false",
27-
"EditorConfigOptionDefault=false",
28-
WellKnownDiagnosticTags.NotConfigurable
29-
]);
9+
public const string EnableKey = "build_property.EnumGenerator_EnableUsageAnalyzers";
3010

3111
internal static bool IsEnabled(AnalyzerOptions context)
3212
=> context.AnalyzerConfigOptionsProvider.GlobalOptions.TryGetValue(EnableKey, out var value) &&

0 commit comments

Comments
 (0)