diff --git a/Build.ps1 b/Build.ps1
index 5b6ab1d..25271b6 100644
--- a/Build.ps1
+++ b/Build.ps1
@@ -27,6 +27,9 @@ Process {
# Let GitVersion compute the NuGet package version
$version = Exec { & dotnet dotnet-gitversion /output json /showvariable SemVer }
+ # Generate .editorconfig files for analyzers
+ Exec { & dotnet run --project=tools/ConfigurationFilesGenerator/ConfigurationFilesGenerator.csproj --configuration Release }
+
# Pack using NuGet.exe
Exec { & nuget pack Workleap.DotNet.CodingStandards.nuspec -OutputDirectory $outputDir -Version $version -ForceEnglishOutput }
diff --git a/src/build/Workleap.DotNet.CodingStandards.targets b/src/build/Workleap.DotNet.CodingStandards.targets
index 5929fbc..d9b9d27 100644
--- a/src/build/Workleap.DotNet.CodingStandards.targets
+++ b/src/build/Workleap.DotNet.CodingStandards.targets
@@ -9,16 +9,13 @@
-
+
-
+
-
-
-
-
+
diff --git a/src/files/3_AllProjectsAnalyzers.editorconfig b/src/files/3_AllProjectsAnalyzers.editorconfig
deleted file mode 100644
index 0d6c41b..0000000
--- a/src/files/3_AllProjectsAnalyzers.editorconfig
+++ /dev/null
@@ -1,547 +0,0 @@
-# global_level must be higher than the NET Analyzer files
-is_global = true
-global_level = 0
-
-#### IDE rules (IDE####) ####
-
-# IDE0001: Simplify name (specifying a full type name is sometimes unnecessary)
-dotnet_diagnostic.IDE0001.severity = warning
-
-# IDE0002: Simplify member access (specifying a type name in a static invocation is sometimes unnecessary)
-dotnet_diagnostic.IDE0002.severity = suggestion
-
-# IDE0003: Remove this or Me qualification (enforce the use of 'this.')
-dotnet_diagnostic.IDE0003.severity = none
-
-# IDE0004: Remove Unnecessary Cast
-dotnet_diagnostic.IDE0004.severity = warning
-
-# IDE0005: Remove unnecessary using directives
-dotnet_diagnostic.IDE0005.severity = warning
-
-# IDE0007: Use implicit type (var)
-dotnet_diagnostic.IDE0007.severity = warning
-
-# IDE0008: Use explicit type (prefer using var)
-dotnet_diagnostic.IDE0008.severity = none
-
-# IDE0009: Add this or Me qualification (enforce the use of 'this.')
-dotnet_diagnostic.IDE0009.severity = warning
-
-# IDE0010: Add missing cases
-dotnet_diagnostic.IDE0010.severity = suggestion
-
-# IDE0011: Add braces
-dotnet_diagnostic.IDE0011.severity = warning
-
-# IDE0016: Use 'throw' expression
-dotnet_diagnostic.IDE0016.severity = none
-
-# IDE0017: Simplify object initialization
-dotnet_diagnostic.IDE0017.severity = suggestion
-
-# IDE0018: Inline variable declaration
-dotnet_diagnostic.IDE0018.severity = suggestion
-
-# IDE0019: Use pattern matching to avoid as followed by a null check
-dotnet_diagnostic.IDE0019.severity = suggestion
-
-# IDE0020: Use pattern matching to avoid is check followed by a cast (with variable)
-dotnet_diagnostic.IDE0020.severity = warning
-
-# IDE0021: Use expression body for constructors
-dotnet_diagnostic.IDE0021.severity = none
-
-# IDE0022: Use expression body for methods
-dotnet_diagnostic.IDE0022.severity = none
-
-# IDE0023: Use expression body for operators
-dotnet_diagnostic.IDE0023.severity = none
-
-# IDE0024: Use expression body for operators
-dotnet_diagnostic.IDE0024.severity = none
-
-# IDE0025: Use expression body for properties
-dotnet_diagnostic.IDE0025.severity = none
-
-# IDE0026: Use expression body for indexers
-dotnet_diagnostic.IDE0026.severity = none
-
-# IDE0027: Use expression body for accessors
-dotnet_diagnostic.IDE0027.severity = none
-
-# IDE0028: Simplify collection initialization
-dotnet_diagnostic.IDE0028.severity = suggestion
-
-# IDE0029: Use coalesce expression
-dotnet_diagnostic.IDE0029.severity = warning
-
-# IDE0030: Use coalesce expression
-dotnet_diagnostic.IDE0030.severity = warning
-
-# IDE0031: Use null propagation
-dotnet_diagnostic.IDE0031.severity = warning
-
-# IDE0032: Use auto property
-dotnet_diagnostic.IDE0032.severity = none
-
-# IDE0033: Use explicitly provided tuple name
-dotnet_diagnostic.IDE0033.severity = suggestion
-
-# IDE0034: Simplify 'default' expression
-dotnet_diagnostic.IDE0034.severity = suggestion
-
-# IDE0035: Remove unreachable code
-dotnet_diagnostic.IDE0035.severity = none
-
-# IDE0036: Order modifiers
-dotnet_diagnostic.IDE0036.severity = warning
-
-# IDE0037: Use inferred member name
-dotnet_diagnostic.IDE0037.severity = none
-
-# IDE0038: Use pattern matching to avoid is check followed by a cast (without variable)
-dotnet_diagnostic.IDE0038.severity = suggestion
-
-# IDE0039: Use local function
-dotnet_diagnostic.IDE0039.severity = suggestion
-
-# IDE0040: Add accessibility modifiers
-dotnet_diagnostic.IDE0040.severity = warning
-
-# IDE0041: Use 'is null' check
-dotnet_diagnostic.IDE0041.severity = none
-
-# IDE0042: Deconstruct variable declaration
-dotnet_diagnostic.IDE0042.severity = none
-
-# IDE0043: Invalid format string
-dotnet_diagnostic.IDE0043.severity = warning
-
-# IDE0044: Add readonly modifier
-dotnet_diagnostic.IDE0044.severity = warning
-
-# IDE0045: Use conditional expression for assignment
-dotnet_diagnostic.IDE0045.severity = suggestion
-
-# IDE0046: Use conditional expression for return
-dotnet_diagnostic.IDE0046.severity = suggestion
-
-# IDE0047: Remove unnecessary parentheses
-dotnet_diagnostic.IDE0047.severity = none
-
-# IDE0048: Add parentheses for clarity
-dotnet_diagnostic.IDE0048.severity = none
-
-# IDE0049: Use language keywords instead of framework type names for type references
-dotnet_diagnostic.IDE0049.severity = warning
-
-# IDE0051: Remove unused private members
-dotnet_diagnostic.IDE0051.severity = suggestion
-
-# IDE0052: Remove unread private members
-dotnet_diagnostic.IDE0052.severity = suggestion
-
-# IDE0053: Use expression body for lambdas
-dotnet_diagnostic.IDE0053.severity = none
-
-# IDE0054: Use compound assignment
-dotnet_diagnostic.IDE0054.severity = warning
-
-# IDE0055: Fix formatting (whitespaces, newlines, indentation, spacing, wrapping, etc.)
-dotnet_diagnostic.IDE0055.severity = warning
-
-# IDE0056: Use index operator
-dotnet_diagnostic.IDE0056.severity = suggestion
-
-# IDE0057: Use range operator
-dotnet_diagnostic.IDE0057.severity = suggestion
-
-# IDE0058: Expression value is never used
-dotnet_diagnostic.IDE0058.severity = none
-
-# IDE0059: Unnecessary assignment of a value
-dotnet_diagnostic.IDE0059.severity = warning
-
-# IDE0060: Remove unused parameter
-dotnet_diagnostic.IDE0060.severity = suggestion
-
-# IDE0061: Use expression body for local functions
-dotnet_diagnostic.IDE0061.severity = none
-
-# IDE0062: Make local function 'static'
-dotnet_diagnostic.IDE0062.severity = warning
-
-# IDE0063: Use simple 'using' statement
-dotnet_diagnostic.IDE0063.severity = none
-
-# IDE0064: Make readonly fields writable
-dotnet_diagnostic.IDE0064.severity = none
-
-# IDE0065: Misplaced using directive
-dotnet_diagnostic.IDE0065.severity = warning
-
-# IDE0066: Convert switch statement to expression
-dotnet_diagnostic.IDE0066.severity = suggestion
-
-# IDE0070: Use 'System.HashCode'
-dotnet_diagnostic.IDE0070.severity = suggestion
-
-# IDE0071: Simplify interpolation
-dotnet_diagnostic.IDE0071.severity = warning
-
-# IDE0072: Add missing cases
-dotnet_diagnostic.IDE0072.severity = none
-
-# IDE0073: The file header is missing or not located at the top of the file
-dotnet_diagnostic.IDE0073.severity = none
-
-# IDE0074: Use compound assignment
-dotnet_diagnostic.IDE0074.severity = warning
-
-# IDE0075: Simplify conditional expression
-dotnet_diagnostic.IDE0075.severity = none
-
-# IDE0076: Invalid global 'SuppressMessageAttribute'
-dotnet_diagnostic.IDE0076.severity = warning
-
-# IDE0077: Avoid legacy format target in 'SuppressMessageAttribute'
-dotnet_diagnostic.IDE0077.severity = none
-
-# IDE0078: Use pattern matching
-dotnet_diagnostic.IDE0078.severity = suggestion
-
-# IDE0079: Remove unnecessary suppression
-dotnet_diagnostic.IDE0079.severity = suggestion
-
-# IDE0080: Remove unnecessary suppression operator
-dotnet_diagnostic.IDE0080.severity = warning
-
-# IDE0081: Remove unnecessary suppression operator
-dotnet_diagnostic.IDE0081.severity = none
-
-# IDE0082: 'typeof' can be converted to 'nameof'
-dotnet_diagnostic.IDE0082.severity = warning
-
-# IDE0083: Use pattern matching
-dotnet_diagnostic.IDE0083.severity = suggestion
-
-# IDE0084: Use pattern matching (IsNot operator)
-dotnet_diagnostic.IDE0084.severity = suggestion
-
-# IDE0090: Use 'new(...)'
-dotnet_diagnostic.IDE0090.severity = none
-
-# IDE0100: Remove redundant equality
-dotnet_diagnostic.IDE0100.severity = warning
-
-# IDE0110: Remove unnecessary discard
-dotnet_diagnostic.IDE0110.severity = warning
-
-# IDE0120: Simplify LINQ expression
-dotnet_diagnostic.IDE0120.severity = none
-
-# IDE0130: Namespace does not match folder structure
-dotnet_diagnostic.IDE0130.severity = warning
-
-# IDE0140: Simplify object creation
-dotnet_diagnostic.IDE0140.severity = none
-
-# IDE0150: Prefer 'null' check over type check
-dotnet_diagnostic.IDE0150.severity = none
-
-# IDE0160: Convert to block scoped namespace
-dotnet_diagnostic.IDE0160.severity = none
-
-# IDE0161: Convert to file-scoped namespace
-dotnet_diagnostic.IDE0161.severity = warning
-
-# IDE0170: Simplify property pattern
-dotnet_diagnostic.IDE0170.severity = warning
-
-# IDE0180: Use tuple swap
-dotnet_diagnostic.IDE0180.severity = suggestion
-
-# IDE0200: Remove unnecessary lambda expression
-dotnet_diagnostic.IDE0200.severity = suggestion
-
-# IDE0210: Use top-level statements
-dotnet_diagnostic.IDE0210.severity = none
-
-# IDE0211: Use program main
-dotnet_diagnostic.IDE0211.severity = none
-
-# IDE0220: foreach cast
-dotnet_diagnostic.IDE0220.severity = none
-
-# IDE0230: Use UTF8 string literal
-dotnet_diagnostic.IDE0230.severity = suggestion
-
-# IDE0240: Remove redundant nullable directive
-dotnet_diagnostic.IDE0240.severity = suggestion
-
-# IDE0241: Remove unnecessary nullable directive
-dotnet_diagnostic.IDE0241.severity = suggestion
-
-# IDE0250: Make struct readonly
-dotnet_diagnostic.IDE0250.severity = suggestion
-
-# IDE0260: Use pattern matching
-dotnet_diagnostic.IDE0260.severity = suggestion
-
-# IDE0270: Use coalesce expression
-dotnet_diagnostic.IDE0270.severity = suggestion
-
-# IDE0280: Use 'nameof'
-dotnet_diagnostic.IDE0280.severity = warning
-
-# IDE0300 - IDE0305: Use collection expression for:
-dotnet_diagnostic.IDE0300.severity = suggestion # arrays
-dotnet_diagnostic.IDE0301.severity = suggestion # empty
-dotnet_diagnostic.IDE0302.severity = suggestion # stackalloc
-dotnet_diagnostic.IDE0303.severity = suggestion # 'Create' methods
-dotnet_diagnostic.IDE0304.severity = suggestion # Collection builder methods
-dotnet_diagnostic.IDE0305.severity = suggestion # Fluent collection methods (Add, ToList, etc.)
-
-# IDE1005: Delegate invocation can be simplified.
-dotnet_diagnostic.IDE1005.severity = warning
-
-# IDE1006: Naming styles
-dotnet_diagnostic.IDE1006.severity = warning
-
-# IDE2000: Allow multiple blank lines
-dotnet_diagnostic.IDE2000.severity = warning
-
-# IDE2001: Embedded statements must be on their own line
-dotnet_diagnostic.IDE2001.severity = warning
-
-# IDE2002: Consecutive braces must not have blank line between them
-dotnet_diagnostic.IDE2002.severity = warning
-
-# IDE2003: Allow statement immediately after block
-dotnet_diagnostic.IDE2003.severity = warning
-
-# IDE2004: Blank line not allowed after constructor initializer colon
-dotnet_diagnostic.IDE2004.severity = warning
-
-# IDE2005: Blank line not allowed after token in conditional expression
-dotnet_diagnostic.IDE2005.severity = warning
-
-# IDE2006: Blank line not allowed after after token in arrow expression
-dotnet_diagnostic.IDE2006.severity = warning
-
-#### Code Analysis rules (CA####) ####
-
-# CA1002: Do not expose generic lists (List)
-dotnet_diagnostic.CA1002.severity = none
-
-# CA1014: Mark assemblies with CLSCompliantAttribute
-# Disabled because the types of this project aren't exposed to other programming languages
-dotnet_diagnostic.CA1014.severity = none
-
-# CA1024: Use properties where appropriate
-dotnet_diagnostic.CA1024.severity = none
-
-# CA1031: Do not catch general exception types
-dotnet_diagnostic.CA1031.severity = none
-
-# CA1032: Implement standard exception constructors
-dotnet_diagnostic.CA1032.severity = none
-
-# CA1034: Nested types should not be visible
-# Disabled, because convenient for nested option classes, DTOs in controllers, etc.
-dotnet_diagnostic.CA1034.severity = none
-
-# CA1040: Avoid empty interfaces
-# Disabled to allow marker interfaces
-dotnet_diagnostic.CA1040.severity = none
-
-# CA1054: URI parameters should not be strings
-# Disabled because it's simply annoying and the .NET runtime contains method that accept URI strings
-dotnet_diagnostic.CA1054.severity = none
-
-# CA1055: URI return values should not be strings
-# Disabled for convenience and ease of adoption, returning URI strings can also be useful
-dotnet_diagnostic.CA1055.severity = none
-
-# CA1056: URI properties should not be strings
-# Disabled because it's sometimes inconvenient to force properties to use Uri instead of strings
-dotnet_diagnostic.CA1056.severity = none
-
-# CA1062: Validate arguments of public methods
-# Disabled because there's no need to always enforce null-checks thanks to nullable reference types
-dotnet_diagnostic.CA1062.severity = none
-
-# CA1064: Exceptions should be public
-# Disabled, because it's not always relevant in the context of an internal application
-dotnet_diagnostic.CA1064.severity = none
-
-# CA1068: CancellationToken parameters must come last
-dotnet_diagnostic.CA1068.severity = warning
-
-# CA1200: Avoid using cref tags with a prefix
-# Disabled because using 'T:' prefix is actually convenient VS importing the namespace of the referenced type
-dotnet_diagnostic.CA1200.severity = none
-
-# Globalization, culture and case sensitivity rules
-# CA1303: Do not pass literals as localized parameters (disabled, using *.resx files for user-displayed messages might be too much)
-# CA1304: Specify CultureInfo (ex: string.ToLower)
-# CA1305: Specify IFormatProvider (ex: string.Format)
-# CA1307: Specify StringComparison for clarity (ex: string.IndexOf)
-# CA1308: Normalize strings to uppercase (disabled, too strict)
-# CA1309: Use ordinal StringComparison (ex: string.Compare)
-# CA1310: Specify StringComparison for correctness (ex: string.Compare)
-# CA1311: Specify a culture or use an invariant version (ex: string.ToUpper)
-dotnet_diagnostic.CA1303.severity = none
-dotnet_diagnostic.CA1304.severity = suggestion
-dotnet_diagnostic.CA1305.severity = suggestion
-dotnet_diagnostic.CA1307.severity = suggestion
-dotnet_diagnostic.CA1308.severity = none
-dotnet_diagnostic.CA1309.severity = suggestion
-dotnet_diagnostic.CA1310.severity = suggestion
-dotnet_diagnostic.CA1311.severity = suggestion
-
-# CA1507: Use nameof in place of string
-# Disabled because it was suggested when using [Newtonsoft.Json.JsonProperty],
-# which could lead to JSON breaking changes in case of refactoring or obfuscation
-dotnet_diagnostic.CA1507.severity = none
-
-# CA1508: Avoid dead conditional code
-# Disabled because provides false positives in cases with double checked locking and has performance impact
-dotnet_diagnostic.CA1508.severity = none
-
-# CA1510: Use ArgumentNullException throw helper (ArgumentNullException.ThrowIfNull)
-dotnet_diagnostic.CA1510.severity = suggestion
-
-# CA1707: Identifiers should not contain underscores
-# Disabled because this is a common practice in test method names (and other cases)
-dotnet_diagnostic.CA1707.severity = none
-
-# CA1710: Identifiers should have correct suffix
-# Disabled because it's simply annoying (streams types must end with 'Stream', same for queue, stack, collection, dictionary, etc.)
-dotnet_diagnostic.CA1710.severity = none
-
-# CA1711: Identifiers should not have incorrect suffix
-# Disabled because it's sometimes OK to name something ending with Collection even if it doesn't implement ICollection
-dotnet_diagnostic.CA1711.severity = none
-
-# CA1716: Identifiers should not match keywords
-# Some method names such as "Get" or "Set" should be allowed. This rule exists mostly because of VB.NET. As we don't use it, this is fine to disable the rule.
-dotnet_diagnostic.CA1716.severity = none
-
-# CA1720: Identifiers should not contain type names
-dotnet_diagnostic.CA1720.severity = none
-
-# CA1724: Type names should not match namespaces
-# Disabled to increase the adoption of this library, as many projects have classes with the same name of the namespace
-dotnet_diagnostic.CA1724.severity = none
-
-# CA1805: Do not initialize unnecessarily
-dotnet_diagnostic.CA1805.severity = warning
-
-# CA1812: Allow unreferenced code to exist
-dotnet_diagnostic.CA1812.severity = none
-
-# CA1819: Allow properties to return arrays
-dotnet_diagnostic.CA1819.severity = none
-
-# CA1822: Mark members as static
-# Disabled because the compiler might not always be aware of how a member is used
-dotnet_diagnostic.CA1822.severity = none
-
-# CA1848: Use the LoggerMessage delegates
-# Disabled because high-performance logging is overkill in most cases (except in libs with hot paths)
-dotnet_diagnostic.CA1848.severity = none
-
-# CA1859: Use concrete types when possible for improved performance
-# Disabled, down-casting doesn't degrade performance that much
-dotnet_diagnostic.CA1859.severity = none
-
-# CA1860: Avoid using 'Enumerable.Any()' extension method (instead of Length, Count or IsEmpty)
-# Disabled because the modern version of 'Any()' has been significantly optimized for types that implement ICollection
-# 'Any' may also be considered more readable in some cases
-dotnet_diagnostic.CA1860.severity = none
-
-# CA1863: Use 'CompositeFormat'
-# Disabled, this is fairly new and the performance gains over string.Format isn't worth it
-dotnet_diagnostic.CA1863.severity = none
-
-# CA2000: Dispose objects before losing scope
-# Disabled because disposables don't always need to be disposed in the current scope (ex: HttpClients provided by IHttpClientFactory)
-dotnet_diagnostic.CA2000.severity = none
-
-# CA2007: Do not directly await a Task
-# Disabled because using ConfigureAwait(true) isn't necessary in ASP.NET Core (MVC & APIs) as there is no synchronization context
-dotnet_diagnostic.CA2007.severity = none
-
-# CA2008: Do not create tasks without passing a TaskScheduler
-# Disabled because it's OK to use the default scheduler in most applications (for desktop ones, this might be different)
-dotnet_diagnostic.CA2008.severity = none
-
-# CA2201: Do not raise a generic exception or reserved exception type
-dotnet_diagnostic.CA2201.severity = suggestion
-
-# CA2225: Operator overloads have named alternates
-dotnet_diagnostic.CA2225.severity = none
-
-# CA2227: Collection properties should be read only
-# Disabled to allow collections to have setters (ex: JSON serialization)
-dotnet_diagnostic.CA2227.severity = none
-
-# CA2229: Implement serialization constructors
-# Disabled to not enforce the creation of exception constructors accepting a SerializationInfo and StreamingContext. BinarySerializer is now obsolete and will be removed from .NET 9.
-dotnet_diagnostic.CA2229.severity = none
-
-# CA2234: Pass System.Uri objects instead of strings
-# Disabled, it's more convenient to pass strings in some cases
-dotnet_diagnostic.CA2234.severity = none
-
-# CA2329: Do not deserialize with JsonSerializer using an insecure configuration
-dotnet_diagnostic.CA2329.severity = warning
-
-# CA2330: Ensure that JsonSerializer has a secure configuration when deserializing
-dotnet_diagnostic.CA2330.severity = warning
-
-# Various security rules that are highly unlikely to be necessary when using a proper SAST tool
-# Most of them are concerning the use of non-validated user input in various contexts
-# These rules are also EXTREMELY expensive to execute on a medium-sized codebase (more than 70% of the total time spent on the analysis)
-# Enable them on a case by case basis if you have a specific need for them
-# Additional note: CA3004 and 3007 seemed relevant for web apps but didn't seem to work with basic ASP.NET Core setup
-dotnet_diagnostic.CA3001.severity = none # CA3001: Review code for SQL injection vulnerabilities
-dotnet_diagnostic.CA3002.severity = none # CA3002: Review code for XSS vulnerabilities
-dotnet_diagnostic.CA3003.severity = none # CA3003: Review code for file path injection vulnerabilities
-dotnet_diagnostic.CA3004.severity = none # CA3004: Review code for information disclosure vulnerabilities
-dotnet_diagnostic.CA3005.severity = none # CA3005: Review code for LDAP injection vulnerabilities
-dotnet_diagnostic.CA3006.severity = none # CA3006: Review code for process command injection vulnerabilities
-dotnet_diagnostic.CA3007.severity = none # CA3007: Review code for open redirect vulnerabilities
-dotnet_diagnostic.CA3008.severity = none # CA3008: Review code for XPath injection vulnerabilities
-dotnet_diagnostic.CA3009.severity = none # CA3009: Review code for XML injection vulnerabilities
-dotnet_diagnostic.CA3010.severity = none # CA3010: Review code for XAML injection vulnerabilities
-dotnet_diagnostic.CA3011.severity = none # CA3011: Review code for DLL injection vulnerabilities
-dotnet_diagnostic.CA3012.severity = none # CA3012: Review code for regex injection vulnerabilities
-
-# CA5362: Potential reference cycle in deserialized object graph
-# Disabled because the use of SerializableAttribute on our types is almost non-existent
-dotnet_diagnostic.CA5362.severity = none
-
-# CA3076: Insecure XSLT Script Execution
-dotnet_diagnostic.CA3076.severity = none
-
-# CA5389: Do not add archive item's path to the target file system path
-# Disabled because this rule is very expensive and using ZipArchive is not that common
-dotnet_diagnostic.CA5389.severity = none
-
-# CA5394: Do not use insecure randomness
-# Disabled because it's OK to use Random in non security-critical contexts
-dotnet_diagnostic.CA5394.severity = none
-
-# CA5399: Enable HttpClient certificate revocation list check
-# CA5400: Ensure HttpClient certificate revocation list check is not disabled
-dotnet_diagnostic.CA5399.severity = none
-dotnet_diagnostic.CA5400.severity = none
-
-#### Compiler warnings (CS####) ####
-
-# CS1591: Missing XML comment for publicly visible type or member
-# Disabled because although XML documentation is enabled on the project, documenting everything is not always necessary
-dotnet_diagnostic.CS1591.severity = none
diff --git a/src/files/4_ReSharperAnalyzers.editorconfig b/src/files/3_ReSharperAnalyzers.editorconfig
similarity index 100%
rename from src/files/4_ReSharperAnalyzers.editorconfig
rename to src/files/3_ReSharperAnalyzers.editorconfig
diff --git a/src/files/5_TestProjectsAnalyzers.editorconfig b/src/files/4_TestProjectsAnalyzers.editorconfig
similarity index 100%
rename from src/files/5_TestProjectsAnalyzers.editorconfig
rename to src/files/4_TestProjectsAnalyzers.editorconfig
diff --git a/src/files/analyzers/Analyzer.Microsoft.CodeAnalysis.BannedApiAnalyzers.editorconfig b/src/files/analyzers/Analyzer.Microsoft.CodeAnalysis.BannedApiAnalyzers.editorconfig
new file mode 100644
index 0000000..029bf70
--- /dev/null
+++ b/src/files/analyzers/Analyzer.Microsoft.CodeAnalysis.BannedApiAnalyzers.editorconfig
@@ -0,0 +1,18 @@
+# global_level must be higher than the NET Analyzer files
+is_global = true
+global_level = 0
+
+# RS0030: Do not use banned APIs
+# Help link: https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.BannedApiAnalyzers/BannedApiAnalyzers.Help.md
+# Enabled: True, Severity: warning
+dotnet_diagnostic.RS0030.severity = warning
+
+# RS0031: The list of banned symbols contains a duplicate
+# Help link: https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.BannedApiAnalyzers/BannedApiAnalyzers.Help.md
+# Enabled: True, Severity: warning
+dotnet_diagnostic.RS0031.severity = warning
+
+# RS0035: External access to internal symbols outside the restricted namespace(s) is prohibited
+# Enabled: True, Severity: error
+dotnet_diagnostic.RS0035.severity = error
+
diff --git a/src/files/analyzers/Analyzer.Microsoft.CodeAnalysis.CSharp.CodeStyle.editorconfig b/src/files/analyzers/Analyzer.Microsoft.CodeAnalysis.CSharp.CodeStyle.editorconfig
new file mode 100644
index 0000000..dc6212d
--- /dev/null
+++ b/src/files/analyzers/Analyzer.Microsoft.CodeAnalysis.CSharp.CodeStyle.editorconfig
@@ -0,0 +1,556 @@
+# global_level must be higher than the NET Analyzer files
+is_global = true
+global_level = 0
+
+# EnableGenerateDocumentationFile: Set MSBuild property 'GenerateDocumentationFile' to 'true'
+# Help link: https://github.com/dotnet/roslyn/issues/41640
+# Enabled: True, Severity: warning
+dotnet_diagnostic.EnableGenerateDocumentationFile.severity = warning
+
+# IDE0004: Remove Unnecessary Cast
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0004
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0004.severity = warning
+
+# IDE0005: Using directive is unnecessary.
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0005
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0005.severity = warning
+
+# IDE0005_gen: Using directive is unnecessary.
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0005_gen.severity = silent
+
+# IDE0007: Use implicit type
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0007
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0007.severity = warning
+
+# IDE0008: Use explicit type
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0008
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0008.severity = silent
+
+# IDE0009: Member access should be qualified.
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0009
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0009.severity = warning
+
+# IDE0010: Add missing cases
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0010
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0010.severity = suggestion
+
+# IDE0011: Add braces
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0011
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0011.severity = warning
+
+# IDE0016: Use 'throw' expression
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0016
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0016.severity = silent
+
+# IDE0017: Simplify object initialization
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0017
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0017.severity = suggestion
+
+# IDE0018: Inline variable declaration
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0018
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0018.severity = suggestion
+
+# IDE0019: Use pattern matching
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0019
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0019.severity = suggestion
+
+# IDE0020: Use pattern matching
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0020
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0020.severity = warning
+
+# IDE0021: Use expression body for constructor
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0021
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0021.severity = silent
+
+# IDE0022: Use expression body for method
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0022
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0022.severity = silent
+
+# IDE0023: Use expression body for conversion operator
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0023
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0023.severity = silent
+
+# IDE0024: Use expression body for operator
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0024
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0024.severity = silent
+
+# IDE0025: Use expression body for property
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0025
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0025.severity = silent
+
+# IDE0026: Use expression body for indexer
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0026
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0026.severity = silent
+
+# IDE0027: Use expression body for accessor
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0027
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0027.severity = silent
+
+# IDE0028: Simplify collection initialization
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0028
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0028.severity = suggestion
+
+# IDE0029: Use coalesce expression
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0029
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0029.severity = warning
+
+# IDE0030: Use coalesce expression
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0030
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0030.severity = warning
+
+# IDE0031: Use null propagation
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0031
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0031.severity = warning
+
+# IDE0032: Use auto property
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0032
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0032.severity = silent
+
+# IDE0033: Use explicitly provided tuple name
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0033
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0033.severity = suggestion
+
+# IDE0034: Simplify 'default' expression
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0034
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0034.severity = suggestion
+
+# IDE0035: Unreachable code detected
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0035
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0035.severity = none
+
+# IDE0036: Order modifiers
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0036
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0036.severity = warning
+
+# IDE0037: Use inferred member name
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0037
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0037.severity = none
+
+# IDE0039: Use local function
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0039
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0039.severity = suggestion
+
+# IDE0040: Add accessibility modifiers
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0040
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0040.severity = warning
+
+# IDE0041: Use 'is null' check
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0041
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0041.severity = silent
+
+# IDE0042: Deconstruct variable declaration
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0042
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0042.severity = silent
+
+# IDE0043: Invalid format string
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.IDE0043.severity = warning
+
+# IDE0044: Add readonly modifier
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0044
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0044.severity = warning
+
+# IDE0045: Convert to conditional expression
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0045
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0045.severity = suggestion
+
+# IDE0046: Convert to conditional expression
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0046
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0046.severity = suggestion
+
+# IDE0047: Remove unnecessary parentheses
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0047
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0047.severity = silent
+
+# IDE0048: Add parentheses for clarity
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0048
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0048.severity = silent
+
+# IDE0051: Remove unused private members
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0051
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.IDE0051.severity = suggestion
+
+# IDE0052: Remove unread private members
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0052
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.IDE0052.severity = suggestion
+
+# IDE0053: Use block body for lambda expression
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0053
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0053.severity = silent
+
+# IDE0053: Use expression body for lambda expression
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0053
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0053.severity = silent
+
+# IDE0054: Use compound assignment
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0054
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0054.severity = warning
+
+# IDE0055: Fix formatting
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0055.severity = warning
+
+# IDE0056: Use index operator
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0056
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0056.severity = suggestion
+
+# IDE0057: Use range operator
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0057
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0057.severity = suggestion
+
+# IDE0058: Expression value is never used
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0058
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0058.severity = silent
+
+# IDE0059: Unnecessary assignment of a value
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0059
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0059.severity = warning
+
+# IDE0060: Remove unused parameter
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0060
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0060.severity = suggestion
+
+# IDE0061: Use expression body for local function
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0061
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0061.severity = silent
+
+# IDE0062: Make local function 'static'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0062
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0062.severity = warning
+
+# IDE0063: Use simple 'using' statement
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0063
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0063.severity = silent
+
+# IDE0064: Make readonly fields writable
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0064
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.IDE0064.severity = suggestion
+
+# IDE0065: Misplaced using directive
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0065
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0065.severity = warning
+
+# IDE0066: Convert switch statement to expression
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0066
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0066.severity = suggestion
+
+# IDE0070: Use 'System.HashCode'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0070
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0070.severity = suggestion
+
+# IDE0071: Simplify interpolation
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0071
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0071.severity = warning
+
+# IDE0072: Add missing cases
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0072
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0072.severity = silent
+
+# IDE0073: The file header does not match the required text
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0073
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0073.severity = silent
+
+# IDE0073: The file header is missing or not located at the top of the file
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0073
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0073.severity = silent
+
+# IDE0074: Use compound assignment
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0074
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0074.severity = warning
+
+# IDE0075: Simplify conditional expression
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0075
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0075.severity = silent
+
+# IDE0076: Invalid global 'SuppressMessageAttribute'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0076
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.IDE0076.severity = warning
+
+# IDE0077: Avoid legacy format target in 'SuppressMessageAttribute'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0077
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.IDE0077.severity = none
+
+# IDE0078: Use pattern matching
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0078
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0078.severity = suggestion
+
+# IDE0079: Remove unnecessary suppression
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0079
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.IDE0079.severity = suggestion
+
+# IDE0080: Remove unnecessary suppression operator
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0080
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0080.severity = warning
+
+# IDE0082: 'typeof' can be converted to 'nameof'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0082
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0082.severity = warning
+
+# IDE0083: Use pattern matching
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0083
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0083.severity = suggestion
+
+# IDE0090: Use 'new(...)'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0090
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0090.severity = silent
+
+# IDE0100: Remove redundant equality
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0100
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0100.severity = warning
+
+# IDE0110: Remove unnecessary discard
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0110
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0110.severity = warning
+
+# IDE0120: Simplify LINQ expression
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0120
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0120.severity = silent
+
+# IDE0130: Namespace does not match folder structure
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0130
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0130.severity = warning
+
+# IDE0150: Prefer 'null' check over type check
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0150
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0150.severity = silent
+
+# IDE0160: Convert to block scoped namespace
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0160
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0160.severity = none
+
+# IDE0161: Convert to file-scoped namespace
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0161
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0161.severity = warning
+
+# IDE0170: Property pattern can be simplified
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0170
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0170.severity = warning
+
+# IDE0180: Use tuple to swap values
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0180
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0180.severity = suggestion
+
+# IDE0200: Remove unnecessary lambda expression
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0200
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0200.severity = suggestion
+
+# IDE0210: Convert to top-level statements
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0210
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0210.severity = silent
+
+# IDE0211: Convert to 'Program.Main' style program
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0211
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0211.severity = silent
+
+# IDE0220: Add explicit cast
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0220
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0220.severity = silent
+
+# IDE0230: Use UTF-8 string literal
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0230
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0230.severity = suggestion
+
+# IDE0240: Remove redundant nullable directive
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0240
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0240.severity = suggestion
+
+# IDE0241: Remove unnecessary nullable directive
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0241
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0241.severity = suggestion
+
+# IDE0250: Make struct 'readonly'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0250
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0250.severity = suggestion
+
+# IDE0251: Make member 'readonly'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0251
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0251.severity = silent
+
+# IDE0260: Use pattern matching
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0260
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0260.severity = suggestion
+
+# IDE0270: Use coalesce expression
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0270
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0270.severity = suggestion
+
+# IDE0280: Use 'nameof'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0280
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0280.severity = warning
+
+# IDE0290: Use primary constructor
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0290
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0290.severity = silent
+
+# IDE0300: Simplify collection initialization
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0300
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0300.severity = suggestion
+
+# IDE0301: Simplify collection initialization
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0301
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0301.severity = suggestion
+
+# IDE0302: Simplify collection initialization
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0302
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0302.severity = suggestion
+
+# IDE0303: Simplify collection initialization
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0303
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0303.severity = suggestion
+
+# IDE0304: Simplify collection initialization
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0304
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0304.severity = suggestion
+
+# IDE0305: Simplify collection initialization
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0305
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE0305.severity = suggestion
+
+# IDE1005: Delegate invocation can be simplified.
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide1005
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE1005.severity = warning
+
+# IDE1006: Naming Styles
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide1006
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE1006.severity = warning
+
+# IDE2000: Avoid multiple blank lines
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide2000
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE2000.severity = warning
+
+# IDE2001: Embedded statements must be on their own line
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide2001
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE2001.severity = warning
+
+# IDE2002: Consecutive braces must not have blank line between them
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide2002
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE2002.severity = warning
+
+# IDE2003: Blank line required between block and subsequent statement
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide2003
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE2003.severity = warning
+
+# IDE2004: Blank line not allowed after constructor initializer colon
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide2004
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE2004.severity = warning
+
+# IDE2005: Blank line not allowed after conditional expression token
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide2005
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE2005.severity = warning
+
+# IDE2006: Blank line not allowed after arrow expression clause token
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide2006
+# Enabled: True, Severity: silent
+dotnet_diagnostic.IDE2006.severity = warning
+
+# RemoveUnnecessaryImportsFixable:
+# Enabled: True, Severity: silent
+dotnet_diagnostic.RemoveUnnecessaryImportsFixable.severity = silent
+
diff --git a/src/files/analyzers/Analyzer.Microsoft.CodeAnalysis.NetAnalyzers.editorconfig b/src/files/analyzers/Analyzer.Microsoft.CodeAnalysis.NetAnalyzers.editorconfig
new file mode 100644
index 0000000..1c6e69d
--- /dev/null
+++ b/src/files/analyzers/Analyzer.Microsoft.CodeAnalysis.NetAnalyzers.editorconfig
@@ -0,0 +1,1589 @@
+# global_level must be higher than the NET Analyzer files
+is_global = true
+global_level = 0
+
+# CA1000: Do not declare static members on generic types
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1000
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1000.severity = warning
+
+# CA1001: Types that own disposable fields should be disposable
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1001
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1001.severity = warning
+
+# CA1002: Do not expose generic lists
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1002
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1002.severity = none
+
+# CA1003: Use generic event handler instances
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1003
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1003.severity = warning
+
+# CA1005: Avoid excessive parameters on generic types
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1005
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1005.severity = none
+
+# CA1008: Enums should have zero value
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1008
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1008.severity = warning
+
+# CA1010: Generic interface should also be implemented
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1010
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1010.severity = warning
+
+# CA1012: Abstract types should not have public constructors
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1012
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1012.severity = warning
+
+# CA1014: Mark assemblies with CLSCompliant
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1014
+# Enabled: False, Severity: warning
+# Disabled because the types of this project aren't exposed to other programming languages
+dotnet_diagnostic.CA1014.severity = none
+
+# CA1016: Mark assemblies with assembly version
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1016
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1016.severity = warning
+
+# CA1017: Mark assemblies with ComVisible
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1017
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1017.severity = none
+
+# CA1018: Mark attributes with AttributeUsageAttribute
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1018
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1018.severity = warning
+
+# CA1019: Define accessors for attribute arguments
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1019
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1019.severity = warning
+
+# CA1021: Avoid out parameters
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1021
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1021.severity = none
+
+# CA1024: Use properties where appropriate
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1024
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1024.severity = none
+
+# CA1027: Mark enums with FlagsAttribute
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1027
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1027.severity = warning
+
+# CA1028: Enum Storage should be Int32
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1028
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1028.severity = warning
+
+# CA1030: Use events where appropriate
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1030
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1030.severity = warning
+
+# CA1031: Do not catch general exception types
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1031
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1031.severity = none
+
+# CA1032: Implement standard exception constructors
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1032
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1032.severity = none
+
+# CA1033: Interface methods should be callable by child types
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1033
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1033.severity = warning
+
+# CA1034: Nested types should not be visible
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1034
+# Enabled: False, Severity: warning
+# Disabled, because convenient for nested option classes, DTOs in controllers, etc.
+dotnet_diagnostic.CA1034.severity = none
+
+# CA1036: Override methods on comparable types
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1036
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1036.severity = warning
+
+# CA1040: Avoid empty interfaces
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1040
+# Enabled: False, Severity: warning
+# Disabled to allow marker interfaces
+dotnet_diagnostic.CA1040.severity = none
+
+# CA1041: Provide ObsoleteAttribute message
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1041
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1041.severity = warning
+
+# CA1043: Use Integral Or String Argument For Indexers
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1043
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1043.severity = warning
+
+# CA1044: Properties should not be write only
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1044
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1044.severity = warning
+
+# CA1045: Do not pass types by reference
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1045
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1045.severity = none
+
+# CA1046: Do not overload equality operator on reference types
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1046
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1046.severity = warning
+
+# CA1047: Do not declare protected member in sealed type
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1047
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1047.severity = warning
+
+# CA1050: Declare types in namespaces
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1050
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1050.severity = warning
+
+# CA1051: Do not declare visible instance fields
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1051.severity = warning
+
+# CA1052: Static holder types should be Static or NotInheritable
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1052
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1052.severity = warning
+
+# CA1054: URI-like parameters should not be strings
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1054
+# Enabled: False, Severity: warning
+# Disabled because it's simply annoying and the .NET runtime contains method that accept URI strings
+dotnet_diagnostic.CA1054.severity = none
+
+# CA1055: URI-like return values should not be strings
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1055
+# Enabled: False, Severity: warning
+# Disabled for convenience and ease of adoption, returning URI strings can also be useful
+dotnet_diagnostic.CA1055.severity = none
+
+# CA1056: URI-like properties should not be strings
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1056
+# Enabled: False, Severity: warning
+# Disabled because it's sometimes inconvenient to force properties to use Uri instead of strings
+dotnet_diagnostic.CA1056.severity = none
+
+# CA1058: Types should not extend certain base types
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1058
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1058.severity = warning
+
+# CA1060: Move pinvokes to native methods class
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1060
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1060.severity = none
+
+# CA1061: Do not hide base class methods
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1061
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1061.severity = warning
+
+# CA1062: Validate arguments of public methods
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1062
+# Enabled: False, Severity: warning
+# Disabled because there's no need to always enforce null-checks thanks to nullable reference types
+dotnet_diagnostic.CA1062.severity = none
+
+# CA1063: Implement IDisposable Correctly
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1063
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1063.severity = warning
+
+# CA1064: Exceptions should be public
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1064
+# Enabled: False, Severity: warning
+# Disabled, because it's not always relevant in the context of an internal application
+dotnet_diagnostic.CA1064.severity = none
+
+# CA1065: Do not raise exceptions in unexpected locations
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1065
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1065.severity = warning
+
+# CA1066: Implement IEquatable when overriding Object.Equals
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1066
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1066.severity = warning
+
+# CA1067: Override Object.Equals(object) when implementing IEquatable
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1067
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1067.severity = warning
+
+# CA1068: CancellationToken parameters must come last
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1068
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1068.severity = warning
+
+# CA1069: Enums values should not be duplicated
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1069
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1069.severity = warning
+
+# CA1070: Do not declare event fields as virtual
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1070
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1070.severity = warning
+
+# CA1200: Avoid using cref tags with a prefix
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1200
+# Enabled: True, Severity: silent
+# Disabled because using 'T:' prefix is actually convenient VS importing the namespace of the referenced type
+dotnet_diagnostic.CA1200.severity = none
+
+# CA1303: Do not pass literals as localized parameters
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1303
+# Enabled: False, Severity: warning
+# disabled, using *.resx files for user-displayed messages might be too much
+dotnet_diagnostic.CA1303.severity = none
+
+# CA1304: Specify CultureInfo
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1304
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1304.severity = suggestion
+
+# CA1305: Specify IFormatProvider
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1305
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1305.severity = suggestion
+
+# CA1307: Specify StringComparison for clarity
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1307.severity = suggestion
+
+# CA1308: Normalize strings to uppercase
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1308
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1308.severity = none
+
+# CA1309: Use ordinal string comparison
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1309
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1309.severity = suggestion
+
+# CA1310: Specify StringComparison for correctness
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1310
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1310.severity = suggestion
+
+# CA1311: Specify a culture or use an invariant version
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1311
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1311.severity = suggestion
+
+# CA1401: P/Invokes should not be visible
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1401
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1401.severity = warning
+
+# CA1416: Validate platform compatibility
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1416
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA1416.severity = warning
+
+# CA1417: Do not use 'OutAttribute' on string parameters for P/Invokes
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1417
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA1417.severity = warning
+
+# CA1418: Use valid platform string
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1418
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA1418.severity = warning
+
+# CA1419: Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1419
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1419.severity = warning
+
+# CA1420: Property, type, or attribute requires runtime marshalling
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1420
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA1420.severity = warning
+
+# CA1421: This method uses runtime marshalling even when the 'DisableRuntimeMarshallingAttribute' is applied
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1421
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1421.severity = warning
+
+# CA1422: Validate platform compatibility
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1422
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA1422.severity = warning
+
+# CA1501: Avoid excessive inheritance
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1501
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1501.severity = none
+
+# CA1502: Avoid excessive complexity
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1502
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1502.severity = none
+
+# CA1505: Avoid unmaintainable code
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1505
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1505.severity = none
+
+# CA1506: Avoid excessive class coupling
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1506
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1506.severity = none
+
+# CA1507: Use nameof to express symbol names
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1507
+# Enabled: True, Severity: suggestion
+# Disabled because it was suggested when using [Newtonsoft.Json.JsonProperty],
+# which could lead to JSON breaking changes in case of refactoring or obfuscation
+dotnet_diagnostic.CA1507.severity = none
+
+# CA1508: Avoid dead conditional code
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1508
+# Enabled: False, Severity: warning
+# Disabled because provides false positives in cases with double checked locking and has performance impact
+dotnet_diagnostic.CA1508.severity = none
+
+# CA1509: Invalid entry in code metrics rule specification file
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1509
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1509.severity = none
+
+# CA1510: Use ArgumentNullException throw helper
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1510
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1510.severity = suggestion
+
+# CA1511: Use ArgumentException throw helper
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1511
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1511.severity = warning
+
+# CA1512: Use ArgumentOutOfRangeException throw helper
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1512
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1512.severity = warning
+
+# CA1513: Use ObjectDisposedException throw helper
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1513
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1513.severity = warning
+
+# CA1700: Do not name enum values 'Reserved'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1700
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1700.severity = warning
+
+# CA1707: Identifiers should not contain underscores
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1707
+# Enabled: True, Severity: silent
+# Disabled because this is a common practice in test method names (and other cases)
+dotnet_diagnostic.CA1707.severity = none
+
+# CA1708: Identifiers should differ by more than case
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1708
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1708.severity = warning
+
+# CA1710: Identifiers should have correct suffix
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1710
+# Enabled: True, Severity: silent
+# Disabled because it's simply annoying (streams types must end with 'Stream', same for queue, stack, collection, dictionary, etc.)
+dotnet_diagnostic.CA1710.severity = none
+
+# CA1711: Identifiers should not have incorrect suffix
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711
+# Enabled: True, Severity: silent
+# Disabled because it's sometimes OK to name something ending with Collection even if it doesn't implement ICollection
+dotnet_diagnostic.CA1711.severity = none
+
+# CA1712: Do not prefix enum values with type name
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1712
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1712.severity = warning
+
+# CA1713: Events should not have 'Before' or 'After' prefix
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1713
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1713.severity = warning
+
+# CA1715: Identifiers should have correct prefix
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1715
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1715.severity = warning
+
+# CA1716: Identifiers should not match keywords
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1716
+# Enabled: True, Severity: silent
+# Some method names such as "Get" or "Set" should be allowed. This rule exists mostly because of VB.NET. As we don't use it, this is fine to disable the rule.
+dotnet_diagnostic.CA1716.severity = none
+
+# CA1720: Identifier contains type name
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1720
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1720.severity = none
+
+# CA1721: Property names should not match get methods
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1721
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1721.severity = warning
+
+# CA1724: Type names should not match namespaces
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1724
+# Enabled: False, Severity: warning
+# Disabled to increase the adoption of this library, as many projects have classes with the same name of the namespace
+dotnet_diagnostic.CA1724.severity = none
+
+# CA1725: Parameter names should match base declaration
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1725
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1725.severity = warning
+
+# CA1727: Use PascalCase for named placeholders
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1727
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1727.severity = warning
+
+# CA1802: Use literals where appropriate
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1802
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1802.severity = warning
+
+# CA1805: Do not initialize unnecessarily
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1805
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1805.severity = warning
+
+# CA1806: Do not ignore method results
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1806
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1806.severity = warning
+
+# CA1810: Initialize reference type static fields inline
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1810
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1810.severity = warning
+
+# CA1812: Avoid uninstantiated internal classes
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1812
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1812.severity = none
+
+# CA1813: Avoid unsealed attributes
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1813
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1813.severity = warning
+
+# CA1814: Prefer jagged arrays over multidimensional
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1814
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1814.severity = warning
+
+# CA1815: Override equals and operator equals on value types
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1815
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1815.severity = warning
+
+# CA1816: Dispose methods should call SuppressFinalize
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1816
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1816.severity = warning
+
+# CA1819: Properties should not return arrays
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1819
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1819.severity = none
+
+# CA1820: Test for empty strings using string length
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1820
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1820.severity = warning
+
+# CA1821: Remove empty Finalizers
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1821
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1821.severity = warning
+
+# CA1822: Mark members as static
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1822
+# Enabled: True, Severity: suggestion
+# Disabled because the compiler might not always be aware of how a member is used
+dotnet_diagnostic.CA1822.severity = none
+
+# CA1823: Avoid unused private fields
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1823
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1823.severity = warning
+
+# CA1824: Mark assemblies with NeutralResourcesLanguageAttribute
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1824
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1824.severity = warning
+
+# CA1825: Avoid zero-length array allocations
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1825
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1825.severity = warning
+
+# CA1826: Do not use Enumerable methods on indexable collections
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1826
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1826.severity = warning
+
+# CA1827: Do not use Count() or LongCount() when Any() can be used
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1827
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1827.severity = warning
+
+# CA1828: Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1828
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1828.severity = warning
+
+# CA1829: Use Length/Count property instead of Count() when available
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1829
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1829.severity = warning
+
+# CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1830
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1830.severity = warning
+
+# CA1831: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1831
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA1831.severity = warning
+
+# CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1832
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1832.severity = warning
+
+# CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1833
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1833.severity = warning
+
+# CA1834: Consider using 'StringBuilder.Append(char)' when applicable
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1834
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1834.severity = warning
+
+# CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1835
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1835.severity = warning
+
+# CA1836: Prefer IsEmpty over Count
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1836
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1836.severity = warning
+
+# CA1837: Use 'Environment.ProcessId'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1837
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1837.severity = warning
+
+# CA1838: Avoid 'StringBuilder' parameters for P/Invokes
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1838
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1838.severity = warning
+
+# CA1839: Use 'Environment.ProcessPath'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1839
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1839.severity = warning
+
+# CA1840: Use 'Environment.CurrentManagedThreadId'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1840
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1840.severity = warning
+
+# CA1841: Prefer Dictionary.Contains methods
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1841
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1841.severity = warning
+
+# CA1842: Do not use 'WhenAll' with a single task
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1842
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1842.severity = warning
+
+# CA1843: Do not use 'WaitAll' with a single task
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1843
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1843.severity = warning
+
+# CA1844: Provide memory-based overrides of async methods when subclassing 'Stream'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1844
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1844.severity = warning
+
+# CA1845: Use span-based 'string.Concat'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1845
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1845.severity = warning
+
+# CA1846: Prefer 'AsSpan' over 'Substring'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1846
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1846.severity = warning
+
+# CA1847: Use char literal for a single character lookup
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1847
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1847.severity = warning
+
+# CA1848: Use the LoggerMessage delegates
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1848
+# Enabled: True, Severity: silent
+# Disabled because high-performance logging is overkill in most cases (except in libs with hot paths)
+dotnet_diagnostic.CA1848.severity = none
+
+# CA1849: Call async methods when in an async method
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1849
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1849.severity = warning
+
+# CA1850: Prefer static 'HashData' method over 'ComputeHash'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1850
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1850.severity = warning
+
+# CA1851: Possible multiple enumerations of 'IEnumerable' collection
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1851
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1851.severity = warning
+
+# CA1852: Seal internal types
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1852
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA1852.severity = warning
+
+# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1853
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1853.severity = warning
+
+# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1854
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1854.severity = warning
+
+# CA1855: Prefer 'Clear' over 'Fill'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1855
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1855.severity = warning
+
+# CA1856: Incorrect usage of ConstantExpected attribute
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1856
+# Enabled: True, Severity: error
+dotnet_diagnostic.CA1856.severity = warning
+
+# CA1857: A constant is expected for the parameter
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1857
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA1857.severity = warning
+
+# CA1858: Use 'StartsWith' instead of 'IndexOf'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1858
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1858.severity = warning
+
+# CA1859: Use concrete types when possible for improved performance
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1859
+# Enabled: True, Severity: suggestion
+# Disabled, down-casting doesn't degrade performance that much
+dotnet_diagnostic.CA1859.severity = none
+
+# CA1860: Avoid using 'Enumerable.Any()' extension method
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1860
+# Enabled: True, Severity: suggestion
+# Disabled because the modern version of 'Any()' has been significantly optimized for types that implement ICollection
+# 'Any' may also be considered more readable in some cases
+dotnet_diagnostic.CA1860.severity = none
+
+# CA1861: Avoid constant arrays as arguments
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1861
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1861.severity = warning
+
+# CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1862
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1862.severity = warning
+
+# CA1863: Use 'CompositeFormat'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1863
+# Enabled: True, Severity: silent
+# Disabled, this is fairly new and the performance gains over string.Format isn't worth it
+dotnet_diagnostic.CA1863.severity = none
+
+# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1864
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1864.severity = warning
+
+# CA1865: Use char overload
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1865
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1865.severity = warning
+
+# CA1866: Use char overload
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1866
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1866.severity = warning
+
+# CA1867: Use char overload
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1867
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA1867.severity = warning
+
+# CA1868: Unnecessary call to 'Contains(item)'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1868
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1868.severity = warning
+
+# CA1869: Cache and reuse 'JsonSerializerOptions' instances
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1869
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1869.severity = warning
+
+# CA1870: Use a cached 'SearchValues' instance
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1870
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA1870.severity = warning
+
+# CA2000: Dispose objects before losing scope
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2000
+# Enabled: False, Severity: warning
+# Disabled because disposables don't always need to be disposed in the current scope (ex: HttpClients provided by IHttpClientFactory)
+dotnet_diagnostic.CA2000.severity = none
+
+# CA2002: Do not lock on objects with weak identity
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2002
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2002.severity = warning
+
+# CA2007: Consider calling ConfigureAwait on the awaited task
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2007
+# Enabled: False, Severity: warning
+# Disabled because using ConfigureAwait(true) isn't necessary in ASP.NET Core (MVC & APIs) as there is no synchronization context
+dotnet_diagnostic.CA2007.severity = none
+
+# CA2008: Do not create tasks without passing a TaskScheduler
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2008
+# Enabled: False, Severity: warning
+# Disabled because it's OK to use the default scheduler in most applications (for desktop ones, this might be different)
+dotnet_diagnostic.CA2008.severity = none
+
+# CA2009: Do not call ToImmutableCollection on an ImmutableCollection value
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2009
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2009.severity = warning
+
+# CA2011: Avoid infinite recursion
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2011
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2011.severity = warning
+
+# CA2012: Use ValueTasks correctly
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2012
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2012.severity = warning
+
+# CA2013: Do not use ReferenceEquals with value types
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2013
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA2013.severity = warning
+
+# CA2014: Do not use stackalloc in loops
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2014
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA2014.severity = warning
+
+# CA2015: Do not define finalizers for types derived from MemoryManager
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2015
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA2015.severity = warning
+
+# CA2016: Forward the 'CancellationToken' parameter to methods
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2016
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2016.severity = warning
+
+# CA2017: Parameter count mismatch
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2017
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA2017.severity = warning
+
+# CA2018: 'Buffer.BlockCopy' expects the number of bytes to be copied for the 'count' argument
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2018
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA2018.severity = warning
+
+# CA2019: Improper 'ThreadStatic' field initialization
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2019
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2019.severity = warning
+
+# CA2020: Prevent behavioral change
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2020
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2020.severity = warning
+
+# CA2021: Do not call Enumerable.Cast or Enumerable.OfType with incompatible types
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2021
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA2021.severity = warning
+
+# CA2100: Review SQL queries for security vulnerabilities
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2100
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2100.severity = warning
+
+# CA2101: Specify marshaling for P/Invoke string arguments
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2101
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2101.severity = warning
+
+# CA2119: Seal methods that satisfy private interfaces
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2119
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2119.severity = warning
+
+# CA2153: Do Not Catch Corrupted State Exceptions
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2153
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2153.severity = warning
+
+# CA2200: Rethrow to preserve stack details
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2200
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA2200.severity = warning
+
+# CA2201: Do not raise reserved exception types
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2201
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA2201.severity = suggestion
+
+# CA2207: Initialize value type static fields inline
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2207
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2207.severity = warning
+
+# CA2208: Instantiate argument exceptions correctly
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2208
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2208.severity = warning
+
+# CA2211: Non-constant fields should not be visible
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2211
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2211.severity = warning
+
+# CA2213: Disposable fields should be disposed
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2213
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2213.severity = warning
+
+# CA2214: Do not call overridable methods in constructors
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2214
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2214.severity = warning
+
+# CA2215: Dispose methods should call base class dispose
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2215
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA2215.severity = warning
+
+# CA2216: Disposable types should declare finalizer
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2216
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2216.severity = warning
+
+# CA2217: Do not mark enums with FlagsAttribute
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2217
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2217.severity = warning
+
+# CA2218: Override GetHashCode on overriding Equals
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2218
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2218.severity = warning
+
+# CA2219: Do not raise exceptions in finally clauses
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2219
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2219.severity = warning
+
+# CA2224: Override Equals on overloading operator equals
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2224
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2224.severity = warning
+
+# CA2225: Operator overloads have named alternates
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2225
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2225.severity = none
+
+# CA2226: Operators should have symmetrical overloads
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2226
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2226.severity = warning
+
+# CA2227: Collection properties should be read only
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2227
+# Enabled: False, Severity: warning
+# Disabled to allow collections to have setters (ex: JSON serialization)
+dotnet_diagnostic.CA2227.severity = none
+
+# CA2231: Overload operator equals on overriding value type Equals
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2231
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2231.severity = warning
+
+# CA2234: Pass system uri objects instead of strings
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2234
+# Enabled: False, Severity: warning
+# Disabled, it's more convenient to pass strings in some cases
+dotnet_diagnostic.CA2234.severity = none
+
+# CA2235: Mark all non-serializable fields
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2235
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2235.severity = warning
+
+# CA2237: Mark ISerializable types with serializable
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2237
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2237.severity = warning
+
+# CA2241: Provide correct arguments to formatting methods
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2241
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2241.severity = warning
+
+# CA2242: Test for NaN correctly
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2242
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2242.severity = warning
+
+# CA2243: Attribute string literals should parse correctly
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2243
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2243.severity = warning
+
+# CA2244: Do not duplicate indexed element initializations
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2244
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2244.severity = warning
+
+# CA2245: Do not assign a property to itself
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2245
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2245.severity = warning
+
+# CA2246: Assigning symbol and its member in the same statement
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2246
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2246.severity = warning
+
+# CA2247: Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2247
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA2247.severity = warning
+
+# CA2248: Provide correct 'enum' argument to 'Enum.HasFlag'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2248
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2248.severity = warning
+
+# CA2249: Consider using 'string.Contains' instead of 'string.IndexOf'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2249
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2249.severity = warning
+
+# CA2250: Use 'ThrowIfCancellationRequested'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2250
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2250.severity = warning
+
+# CA2251: Use 'string.Equals'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2251
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA2251.severity = warning
+
+# CA2252: This API requires opting into preview features
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2252
+# Enabled: True, Severity: error
+dotnet_diagnostic.CA2252.severity = warning
+
+# CA2253: Named placeholders should not be numeric values
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2253
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2253.severity = warning
+
+# CA2254: Template should be a static expression
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2254
+# Enabled: True, Severity: suggestion
+dotnet_diagnostic.CA2254.severity = warning
+
+# CA2255: The 'ModuleInitializer' attribute should not be used in libraries
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2255
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA2255.severity = warning
+
+# CA2256: All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2256
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA2256.severity = warning
+
+# CA2257: Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2257
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA2257.severity = warning
+
+# CA2258: Providing a 'DynamicInterfaceCastableImplementation' interface in Visual Basic is unsupported
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2258
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA2258.severity = warning
+
+# CA2259: 'ThreadStatic' only affects static fields
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2259
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA2259.severity = warning
+
+# CA2260: Use correct type parameter
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2260
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA2260.severity = warning
+
+# CA2261: Do not use ConfigureAwaitOptions.SuppressThrowing with Task
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2261
+# Enabled: True, Severity: warning
+dotnet_diagnostic.CA2261.severity = warning
+
+# CA2300: Do not use insecure deserializer BinaryFormatter
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2300
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2300.severity = warning
+
+# CA2301: Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2301
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2301.severity = warning
+
+# CA2302: Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2302
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2302.severity = warning
+
+# CA2305: Do not use insecure deserializer LosFormatter
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2305
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2305.severity = warning
+
+# CA2310: Do not use insecure deserializer NetDataContractSerializer
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2310
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2310.severity = warning
+
+# CA2311: Do not deserialize without first setting NetDataContractSerializer.Binder
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2311
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2311.severity = warning
+
+# CA2312: Ensure NetDataContractSerializer.Binder is set before deserializing
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2312
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2312.severity = warning
+
+# CA2315: Do not use insecure deserializer ObjectStateFormatter
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2315
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2315.severity = warning
+
+# CA2321: Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2321
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2321.severity = warning
+
+# CA2322: Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2322
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2322.severity = warning
+
+# CA2326: Do not use TypeNameHandling values other than None
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2326
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2326.severity = warning
+
+# CA2327: Do not use insecure JsonSerializerSettings
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2327
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2327.severity = warning
+
+# CA2328: Ensure that JsonSerializerSettings are secure
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2328
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2328.severity = warning
+
+# CA2329: Do not deserialize with JsonSerializer using an insecure configuration
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2329
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2329.severity = warning
+
+# CA2330: Ensure that JsonSerializer has a secure configuration when deserializing
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2330
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2330.severity = warning
+
+# CA2350: Do not use DataTable.ReadXml() with untrusted data
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2350
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2350.severity = warning
+
+# CA2351: Do not use DataSet.ReadXml() with untrusted data
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2351
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2351.severity = warning
+
+# CA2352: Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2352
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2352.severity = warning
+
+# CA2353: Unsafe DataSet or DataTable in serializable type
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2353
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2353.severity = warning
+
+# CA2354: Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2354
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2354.severity = warning
+
+# CA2355: Unsafe DataSet or DataTable type found in deserializable object graph
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2355
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2355.severity = warning
+
+# CA2356: Unsafe DataSet or DataTable type in web deserializable object graph
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2356
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2356.severity = warning
+
+# CA2361: Ensure auto-generated class containing DataSet.ReadXml() is not used with untrusted data
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2361
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2361.severity = warning
+
+# CA2362: Unsafe DataSet or DataTable in auto-generated serializable type can be vulnerable to remote code execution attacks
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2362
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA2362.severity = warning
+
+# CA3001: Review code for SQL injection vulnerabilities
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca3001
+# Enabled: False, Severity: warning
+# Highly unlikely to be necessary when using a proper SAST tool
+# Also, EXTREMELY expensive to execute on a medium-sized codebase (more than 70% of the total time spent on the analysis)
+# Enable them on a case by case basis if you have a specific need for them
+dotnet_diagnostic.CA3001.severity = none
+
+# CA3002: Review code for XSS vulnerabilities
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca3002
+# Enabled: False, Severity: warning
+# Highly unlikely to be necessary when using a proper SAST tool
+# Also, EXTREMELY expensive to execute on a medium-sized codebase (more than 70% of the total time spent on the analysis)
+# Enable them on a case by case basis if you have a specific need for them
+dotnet_diagnostic.CA3002.severity = none
+
+# CA3003: Review code for file path injection vulnerabilities
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca3003
+# Enabled: False, Severity: warning
+# Highly unlikely to be necessary when using a proper SAST tool
+# Also, EXTREMELY expensive to execute on a medium-sized codebase (more than 70% of the total time spent on the analysis)
+# Enable them on a case by case basis if you have a specific need for them
+dotnet_diagnostic.CA3003.severity = none
+
+# CA3004: Review code for information disclosure vulnerabilities
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca3004
+# Enabled: False, Severity: warning
+# Highly unlikely to be necessary when using a proper SAST tool
+# Also, EXTREMELY expensive to execute on a medium-sized codebase (more than 70% of the total time spent on the analysis)
+# Enable them on a case by case basis if you have a specific need for them
+# Also, the rule is relevant for web apps but didn't seem to work with basic ASP.NET Core setup
+dotnet_diagnostic.CA3004.severity = none
+
+# CA3005: Review code for LDAP injection vulnerabilities
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca3005
+# Enabled: False, Severity: warning
+# Highly unlikely to be necessary when using a proper SAST tool
+# Also, EXTREMELY expensive to execute on a medium-sized codebase (more than 70% of the total time spent on the analysis)
+# Enable them on a case by case basis if you have a specific need for them
+dotnet_diagnostic.CA3005.severity = none
+
+# CA3006: Review code for process command injection vulnerabilities
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca3006
+# Enabled: False, Severity: warning
+# Highly unlikely to be necessary when using a proper SAST tool
+# Also, EXTREMELY expensive to execute on a medium-sized codebase (more than 70% of the total time spent on the analysis)
+# Enable them on a case by case basis if you have a specific need for them
+dotnet_diagnostic.CA3006.severity = none
+
+# CA3007: Review code for open redirect vulnerabilities
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca3007
+# Enabled: False, Severity: warning
+# Highly unlikely to be necessary when using a proper SAST tool
+# Also, EXTREMELY expensive to execute on a medium-sized codebase (more than 70% of the total time spent on the analysis)
+# Enable them on a case by case basis if you have a specific need for them
+# Also, the rule is relevant for web apps but didn't seem to work with basic ASP.NET Core setup
+dotnet_diagnostic.CA3007.severity = none
+
+# CA3008: Review code for XPath injection vulnerabilities
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca3008
+# Enabled: False, Severity: warning
+# Highly unlikely to be necessary when using a proper SAST tool
+# Also, EXTREMELY expensive to execute on a medium-sized codebase (more than 70% of the total time spent on the analysis)
+# Enable them on a case by case basis if you have a specific need for them
+dotnet_diagnostic.CA3008.severity = none
+
+# CA3009: Review code for XML injection vulnerabilities
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca3009
+# Enabled: False, Severity: warning
+# Highly unlikely to be necessary when using a proper SAST tool
+# Also, EXTREMELY expensive to execute on a medium-sized codebase (more than 70% of the total time spent on the analysis)
+# Enable them on a case by case basis if you have a specific need for them
+dotnet_diagnostic.CA3009.severity = none
+
+# CA3010: Review code for XAML injection vulnerabilities
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca3010
+# Enabled: False, Severity: warning
+# Highly unlikely to be necessary when using a proper SAST tool
+# Also, EXTREMELY expensive to execute on a medium-sized codebase (more than 70% of the total time spent on the analysis)
+# Enable them on a case by case basis if you have a specific need for them
+dotnet_diagnostic.CA3010.severity = none
+
+# CA3011: Review code for DLL injection vulnerabilities
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca3011
+# Enabled: False, Severity: warning
+# Highly unlikely to be necessary when using a proper SAST tool
+# Also, EXTREMELY expensive to execute on a medium-sized codebase (more than 70% of the total time spent on the analysis)
+# Enable them on a case by case basis if you have a specific need for them
+dotnet_diagnostic.CA3011.severity = none
+
+# CA3012: Review code for regex injection vulnerabilities
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca3012
+# Enabled: False, Severity: warning
+# Highly unlikely to be necessary when using a proper SAST tool
+# Also, EXTREMELY expensive to execute on a medium-sized codebase (more than 70% of the total time spent on the analysis)
+# Enable them on a case by case basis if you have a specific need for them
+dotnet_diagnostic.CA3012.severity = none
+
+# CA3061: Do Not Add Schema By URL
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca3061
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA3061.severity = warning
+
+# CA3075: Insecure DTD processing in XML
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca3075
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA3075.severity = warning
+
+# CA3076: Insecure XSLT script processing
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca3076
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA3076.severity = none
+
+# CA3077: Insecure Processing in API Design, XmlDocument and XmlTextReader
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca3077
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA3077.severity = warning
+
+# CA3147: Mark Verb Handlers With Validate Antiforgery Token
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca3147
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA3147.severity = warning
+
+# CA5350: Do Not Use Weak Cryptographic Algorithms
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5350
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5350.severity = warning
+
+# CA5351: Do Not Use Broken Cryptographic Algorithms
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5351
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5351.severity = warning
+
+# CA5358: Review cipher mode usage with cryptography experts
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5358
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5358.severity = warning
+
+# CA5359: Do Not Disable Certificate Validation
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5359
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5359.severity = warning
+
+# CA5360: Do Not Call Dangerous Methods In Deserialization
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5360
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5360.severity = warning
+
+# CA5361: Do Not Disable SChannel Use of Strong Crypto
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5361
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5361.severity = warning
+
+# CA5362: Potential reference cycle in deserialized object graph
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5362
+# Enabled: False, Severity: warning
+# Disabled because the use of SerializableAttribute on our types is almost non-existent
+dotnet_diagnostic.CA5362.severity = none
+
+# CA5363: Do Not Disable Request Validation
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5363
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5363.severity = warning
+
+# CA5364: Do Not Use Deprecated Security Protocols
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5364
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5364.severity = warning
+
+# CA5365: Do Not Disable HTTP Header Checking
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5365
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5365.severity = warning
+
+# CA5366: Use XmlReader for 'DataSet.ReadXml()'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5366
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5366.severity = warning
+
+# CA5367: Do Not Serialize Types With Pointer Fields
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5367
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5367.severity = warning
+
+# CA5368: Set ViewStateUserKey For Classes Derived From Page
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5368
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5368.severity = warning
+
+# CA5369: Use XmlReader for 'XmlSerializer.Deserialize()'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5369
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5369.severity = warning
+
+# CA5370: Use XmlReader for XmlValidatingReader constructor
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5370
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5370.severity = warning
+
+# CA5371: Use XmlReader for 'XmlSchema.Read()'
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5371
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5371.severity = warning
+
+# CA5372: Use XmlReader for XPathDocument constructor
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5372
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5372.severity = warning
+
+# CA5373: Do not use obsolete key derivation function
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5373
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5373.severity = warning
+
+# CA5374: Do Not Use XslTransform
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5374
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5374.severity = warning
+
+# CA5375: Do Not Use Account Shared Access Signature
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5375
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5375.severity = warning
+
+# CA5376: Use SharedAccessProtocol HttpsOnly
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5376
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5376.severity = warning
+
+# CA5377: Use Container Level Access Policy
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5377
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5377.severity = warning
+
+# CA5378: Do not disable ServicePointManagerSecurityProtocols
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5378
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5378.severity = warning
+
+# CA5379: Ensure Key Derivation Function algorithm is sufficiently strong
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5379
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5379.severity = warning
+
+# CA5380: Do Not Add Certificates To Root Store
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5380
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5380.severity = warning
+
+# CA5381: Ensure Certificates Are Not Added To Root Store
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5381
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5381.severity = warning
+
+# CA5382: Use Secure Cookies In ASP.NET Core
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5382
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5382.severity = warning
+
+# CA5383: Ensure Use Secure Cookies In ASP.NET Core
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5383
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5383.severity = warning
+
+# CA5384: Do Not Use Digital Signature Algorithm (DSA)
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5384
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5384.severity = warning
+
+# CA5385: Use Rivest-Shamir-Adleman (RSA) Algorithm With Sufficient Key Size
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5385
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5385.severity = warning
+
+# CA5386: Avoid hardcoding SecurityProtocolType value
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5386
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5386.severity = warning
+
+# CA5387: Do Not Use Weak Key Derivation Function With Insufficient Iteration Count
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5387
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5387.severity = warning
+
+# CA5388: Ensure Sufficient Iteration Count When Using Weak Key Derivation Function
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5388
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5388.severity = warning
+
+# CA5389: Do Not Add Archive Item's Path To The Target File System Path
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5389
+# Enabled: False, Severity: warning
+# Disabled because this rule is very expensive and using ZipArchive is not that common
+dotnet_diagnostic.CA5389.severity = none
+
+# CA5390: Do not hard-code encryption key
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5390
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5390.severity = warning
+
+# CA5391: Use antiforgery tokens in ASP.NET Core MVC controllers
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5391
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5391.severity = warning
+
+# CA5392: Use DefaultDllImportSearchPaths attribute for P/Invokes
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5392
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5392.severity = warning
+
+# CA5393: Do not use unsafe DllImportSearchPath value
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5393
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5393.severity = warning
+
+# CA5394: Do not use insecure randomness
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5394
+# Enabled: False, Severity: warning
+# Disabled because it's OK to use Random in non security-critical contexts
+dotnet_diagnostic.CA5394.severity = none
+
+# CA5395: Miss HttpVerb attribute for action methods
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5395
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5395.severity = warning
+
+# CA5396: Set HttpOnly to true for HttpCookie
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5396
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5396.severity = warning
+
+# CA5397: Do not use deprecated SslProtocols values
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5397
+# Enabled: True, Severity: silent
+dotnet_diagnostic.CA5397.severity = warning
+
+# CA5398: Avoid hardcoded SslProtocols values
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5398
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5398.severity = warning
+
+# CA5399: HttpClients should enable certificate revocation list checks
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5399
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5399.severity = none
+
+# CA5400: Ensure HttpClient certificate revocation list check is not disabled
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5400
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5400.severity = none
+
+# CA5401: Do not use CreateEncryptor with non-default IV
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5401
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5401.severity = warning
+
+# CA5402: Use CreateEncryptor with the default IV
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5402
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5402.severity = warning
+
+# CA5403: Do not hard-code certificate
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5403
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5403.severity = warning
+
+# CA5404: Do not disable token validation checks
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5404
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5404.severity = warning
+
+# CA5405: Do not always skip token validation in delegates
+# Help link: https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5405
+# Enabled: False, Severity: warning
+dotnet_diagnostic.CA5405.severity = warning
+
diff --git a/src/files/6_StyleCopAnalyzers.editorconfig b/src/files/analyzers/Analyzer.StyleCop.Analyzers.Unstable.editorconfig
similarity index 85%
rename from src/files/6_StyleCopAnalyzers.editorconfig
rename to src/files/analyzers/Analyzer.StyleCop.Analyzers.Unstable.editorconfig
index 82af7f7..dc06b18 100644
--- a/src/files/6_StyleCopAnalyzers.editorconfig
+++ b/src/files/analyzers/Analyzer.StyleCop.Analyzers.Unstable.editorconfig
@@ -4,985 +4,986 @@ global_level = 0
# SA0001: XML comment analysis disabled
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA0001.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA0001.severity = none
# SA0002: Invalid settings file
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA0002.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA0002.severity = none
# SA1000: Keywords should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1000.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1000.severity = none
# SA1001: Commas should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1001.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1001.severity = none
# SA1002: Semicolons should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1002.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1002.severity = none
# SA1003: Symbols should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1003.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1003.severity = none
# SA1004: Documentation lines should begin with single space
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1004.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1004.severity = none
# SA1005: Single line comments should begin with single space
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1005.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1005.severity = none
# SA1006: Preprocessor keywords should not be preceded by space
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1006.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1006.severity = none
# SA1007: Operator keyword should be followed by space
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1007.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1007.severity = none
# SA1008: Opening parenthesis should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1008.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1008.severity = none
# SA1009: Closing parenthesis should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1009.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1009.severity = none
# SA1010: Opening square brackets should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1010.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1010.severity = none
# SA1011: Closing square brackets should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1011.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1011.severity = none
# SA1012: Opening braces should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1012.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1012.severity = none
# SA1013: Closing braces should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1013.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1013.severity = none
# SA1014: Opening generic brackets should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1014.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1014.severity = none
# SA1015: Closing generic brackets should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1015.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1015.severity = none
# SA1016: Opening attribute brackets should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1016.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1016.severity = none
# SA1017: Closing attribute brackets should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1017.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1017.severity = none
# SA1018: Nullable type symbols should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1018.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1018.severity = none
# SA1019: Member access symbols should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1019.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1019.severity = none
# SA1020: Increment decrement symbols should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1020.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1020.severity = none
# SA1021: Negative signs should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1021.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1021.severity = none
# SA1022: Positive signs should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1022.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1022.severity = none
# SA1023: Dereference and access of symbols should be spaced correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1023.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1023.severity = none
# SA1024: Colons Should Be Spaced Correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1024.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1024.severity = none
# SA1025: Code should not contain multiple whitespace in a row
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1025.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1025.severity = none
# SA1026: Code should not contain space after new or stackalloc keyword in implicitly typed array allocation
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1026.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1026.severity = none
# SA1027: Use tabs correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1027.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1027.severity = none
# SA1028: Code should not contain trailing whitespace
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1028.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1028.severity = none
# SA1100: Do not prefix calls with base unless local implementation exists
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1100.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1100.severity = none
# SA1101: Prefix local calls with this
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1101.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1101.severity = none
# SA1102: Query clause should follow previous clause
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1102.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1102.severity = none
# SA1103: Query clauses should be on separate lines or all on one line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1103.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1103.severity = none
# SA1104: Query clause should begin on new line when previous clause spans multiple lines
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1104.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1104.severity = none
# SA1105: Query clauses spanning multiple lines should begin on own line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1105.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1105.severity = none
# SA1106: Code should not contain empty statements
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1106.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1106.severity = none
# SA1107: Code should not contain multiple statements on one line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1107.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1107.severity = none
# SA1108: Block statements should not contain embedded comments
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1108.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1108.severity = none
# SA1109: Block statements should not contain embedded regions
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1109.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SA1109.severity = none
# SA1110: Opening parenthesis or bracket should be on declaration line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1110.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1110.severity = none
# SA1111: Closing parenthesis should be on line of last parameter
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1111.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1111.severity = none
# SA1112: Closing parenthesis should be on line of opening parenthesis
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1112.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1112.severity = none
# SA1113: Comma should be on the same line as previous parameter
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1113.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1113.severity = none
# SA1114: Parameter list should follow declaration
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1114.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1114.severity = none
# SA1115: Parameter should follow comma
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1115.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1115.severity = none
# SA1116: Split parameters should start on line after declaration
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1116.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1116.severity = none
# SA1117: Parameters should be on same line or separate lines
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1117.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1117.severity = none
# SA1118: Parameter should not span multiple lines
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1118.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1118.severity = none
# SA1119: Statement should not use unnecessary parenthesis
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1119.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1119.severity = none
# SA1119_p: Statement should not use unnecessary parenthesis
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1119.md
-# Enabled: True, severity: silent
-dotnet_diagnostic.SA1119_p.severity = none
+# Enabled: True, Severity: silent
+dotnet_diagnostic.SA1119_p.severity = silent
# SA1120: Comments should contain text
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1120.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1120.severity = none
# SA1121: Use built-in type alias
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1121.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1121.severity = none
# SA1122: Use string.Empty for empty strings
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1122.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1122.severity = none
# SA1123: Do not place regions within elements
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1123.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1123.severity = none
# SA1124: Do not use regions
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1124.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1124.severity = none
# SA1125: Use shorthand for nullable types
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1125.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1125.severity = none
# SA1126: Prefix calls correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1126.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SA1126.severity = none
# SA1127: Generic type constraints should be on their own line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1127.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1127.severity = none
# SA1128: Put constructor initializers on their own line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1128.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1128.severity = none
# SA1129: Do not use default value type constructor
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1129.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1129.severity = none
# SA1130: Use lambda syntax
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1130.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1130.severity = none
# SA1131: Use readable conditions
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1131.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1131.severity = none
# SA1132: Do not combine fields
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1132.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1132.severity = none
# SA1133: Do not combine attributes
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1133.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1133.severity = none
# SA1134: Attributes should not share line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1134.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1134.severity = none
# SA1135: Using directives should be qualified
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1135.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1135.severity = none
# SA1136: Enum values should be on separate lines
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1136.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1136.severity = none
# SA1137: Elements should have the same indentation
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1137.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1137.severity = none
# SA1139: Use literal suffix notation instead of casting
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1139.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1139.severity = none
# SA1141: Use tuple syntax
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1141.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1141.severity = none
# SA1142: Refer to tuple fields by name
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1142.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1142.severity = none
# SA1200: Using directives should be placed correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1200.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1200.severity = none
# SA1201: Elements should appear in the correct order
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1201.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1201.severity = none
# SA1202: Elements should be ordered by access
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1202.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1202.severity = none
# SA1203: Constants should appear before fields
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1203.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1203.severity = none
# SA1204: Static elements should appear before instance elements
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1204.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1204.severity = none
# SA1205: Partial elements should declare access
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1205.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1205.severity = none
# SA1206: Declaration keywords should follow order
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1206.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1206.severity = none
# SA1207: Protected should come before internal
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1207.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1207.severity = none
# SA1208: System using directives should be placed before other using directives
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1208.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1208.severity = none
# SA1209: Using alias directives should be placed after other using directives
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1209.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1209.severity = none
# SA1210: Using directives should be ordered alphabetically by namespace
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1210.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1210.severity = none
# SA1211: Using alias directives should be ordered alphabetically by alias name
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1211.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1211.severity = none
# SA1212: Property accessors should follow order
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1212.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1212.severity = none
# SA1213: Event accessors should follow order
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1213.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1213.severity = none
# SA1214: Readonly fields should appear before non-readonly fields
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1214.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1214.severity = none
# SA1216: Using static directives should be placed at the correct location
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1216.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1216.severity = none
# SA1217: Using static directives should be ordered alphabetically
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1217.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1217.severity = none
# SA1300: Element should begin with upper-case letter
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1300.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1300.severity = none
# SA1301: Element should begin with lower-case letter
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1301.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SA1301.severity = none
# SA1302: Interface names should begin with I
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1302.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1302.severity = none
# SA1303: Const field names should begin with upper-case letter
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1303.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1303.severity = none
# SA1304: Non-private readonly fields should begin with upper-case letter
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1304.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1304.severity = none
# SA1305: Field names should not use Hungarian notation
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1305.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SA1305.severity = none
# SA1306: Field names should begin with lower-case letter
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1306.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1306.severity = none
# SA1307: Accessible fields should begin with upper-case letter
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1307.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1307.severity = none
# SA1308: Variable names should not be prefixed
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1308.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1308.severity = none
# SA1309: Field names should not begin with underscore
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1309.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1309.severity = none
# SA1310: Field names should not contain underscore
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1310.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1310.severity = none
# SA1311: Static readonly fields should begin with upper-case letter
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1311.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1311.severity = none
# SA1312: Variable names should begin with lower-case letter
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1312.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1312.severity = none
# SA1313: Parameter names should begin with lower-case letter
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1313.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1313.severity = none
# SA1314: Type parameter names should begin with T
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1314.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1314.severity = none
# SA1316: Tuple element names should use correct casing
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1316.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1316.severity = none
# SA1400: Access modifier should be declared
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1400.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1400.severity = none
# SA1401: Fields should be private
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1401.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1401.severity = none
# SA1402: File may only contain a single type
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1402.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1402.severity = none
# SA1403: File may only contain a single namespace
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1403.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1403.severity = none
# SA1404: Code analysis suppression should have justification
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1404.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1404.severity = none
# SA1405: Debug.Assert should provide message text
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1405.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1405.severity = none
# SA1406: Debug.Fail should provide message text
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1406.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1406.severity = none
# SA1407: Arithmetic expressions should declare precedence
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1407.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1407.severity = none
# SA1408: Conditional expressions should declare precedence
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1408.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1408.severity = none
# SA1409: Remove unnecessary code
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1409.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SA1409.severity = none
# SA1410: Remove delegate parenthesis when possible
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1410.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1410.severity = none
# SA1411: Attribute constructor should not use unnecessary parenthesis
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1411.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1411.severity = none
# SA1412: Store files as UTF-8 with byte order mark
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1412.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SA1412.severity = none
# SA1413: Use trailing comma in multi-line initializers
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1413.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1413.severity = none
# SA1414: Tuple types in signatures should have element names
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1414.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1414.severity = none
# SA1500: Braces for multi-line statements should not share line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1500.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1500.severity = none
# SA1501: Statement should not be on a single line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1501.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1501.severity = none
# SA1502: Element should not be on a single line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1502.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1502.severity = none
# SA1503: Braces should not be omitted
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1503.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1503.severity = none
# SA1504: All accessors should be single-line or multi-line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1504.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1504.severity = none
# SA1505: Opening braces should not be followed by blank line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1505.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1505.severity = none
# SA1506: Element documentation headers should not be followed by blank line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1506.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1506.severity = none
# SA1507: Code should not contain multiple blank lines in a row
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1507.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1507.severity = none
# SA1508: Closing braces should not be preceded by blank line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1508.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1508.severity = none
# SA1509: Opening braces should not be preceded by blank line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1509.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1509.severity = none
# SA1510: Chained statement blocks should not be preceded by blank line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1510.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1510.severity = none
# SA1511: While-do footer should not be preceded by blank line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1511.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1511.severity = none
# SA1512: Single-line comments should not be followed by blank line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1512.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1512.severity = none
# SA1513: Closing brace should be followed by blank line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1513.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1513.severity = none
# SA1514: Element documentation header should be preceded by blank line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1514.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1514.severity = none
# SA1515: Single-line comment should be preceded by blank line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1515.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1515.severity = none
# SA1516: Elements should be separated by blank line
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1516.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1516.severity = none
# SA1517: Code should not contain blank lines at start of file
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1517.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1517.severity = none
# SA1518: Use line endings correctly at end of file
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1518.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1518.severity = none
# SA1519: Braces should not be omitted from multi-line child statement
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1519.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1519.severity = none
# SA1520: Use braces consistently
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1520.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1520.severity = none
# SA1600: Elements should be documented
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1600.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1600.severity = none
# SA1601: Partial elements should be documented
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1601.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1601.severity = none
# SA1602: Enumeration items should be documented
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1602.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1602.severity = none
# SA1603: Documentation should contain valid XML
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1603.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SA1603.severity = none
# SA1604: Element documentation should have summary
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1604.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1604.severity = none
# SA1605: Partial element documentation should have summary
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1605.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1605.severity = none
# SA1606: Element documentation should have summary text
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1606.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1606.severity = none
# SA1607: Partial element documentation should have summary text
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1607.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1607.severity = none
# SA1608: Element documentation should not have default summary
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1608.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1608.severity = none
# SA1609: Property documentation should have value
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1609.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SA1609.severity = none
# SA1610: Property documentation should have value text
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1610.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1610.severity = none
# SA1611: Element parameters should be documented
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1611.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1611.severity = none
# SA1612: Element parameter documentation should match element parameters
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1612.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1612.severity = none
# SA1613: Element parameter documentation should declare parameter name
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1613.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1613.severity = none
# SA1614: Element parameter documentation should have text
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1614.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1614.severity = none
# SA1615: Element return value should be documented
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1615.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1615.severity = none
# SA1616: Element return value documentation should have text
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1616.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1616.severity = none
# SA1617: Void return value should not be documented
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1617.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1617.severity = none
# SA1618: Generic type parameters should be documented
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1618.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1618.severity = none
# SA1619: Generic type parameters should be documented partial class
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1619.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1619.severity = none
# SA1620: Generic type parameter documentation should match type parameters
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1620.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1620.severity = none
# SA1621: Generic type parameter documentation should declare parameter name
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1621.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1621.severity = none
# SA1622: Generic type parameter documentation should have text
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1622.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1622.severity = none
# SA1623: Property summary documentation should match accessors
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1623.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1623.severity = none
# SA1624: Property summary documentation should omit accessor with restricted access
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1624.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1624.severity = none
# SA1625: Element documentation should not be copied and pasted
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1625.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1625.severity = none
# SA1626: Single-line comments should not use documentation style slashes
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1626.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1626.severity = none
# SA1627: Documentation text should not be empty
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1627.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1627.severity = none
# SA1628: Documentation text should begin with a capital letter
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1628.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SA1628.severity = none
# SA1629: Documentation text should end with a period
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1629.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1629.severity = none
# SA1630: Documentation text should contain whitespace
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1630.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SA1630.severity = none
# SA1631: Documentation should meet character percentage
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1631.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SA1631.severity = none
# SA1632: Documentation text should meet minimum character length
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1632.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SA1632.severity = none
# SA1633: File should have header
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1633.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1633.severity = none
# SA1634: File header should show copyright
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1634.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1634.severity = none
# SA1635: File header should have copyright text
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1635.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1635.severity = none
# SA1636: File header copyright text should match
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1636.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1636.severity = none
# SA1637: File header should contain file name
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1637.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1637.severity = none
# SA1638: File header file name documentation should match file name
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1638.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1638.severity = none
# SA1639: File header should have summary
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1639.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SA1639.severity = none
# SA1640: File header should have valid company text
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1640.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1640.severity = none
# SA1641: File header company name text should match
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1641.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1641.severity = none
# SA1642: Constructor summary documentation should begin with standard text
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1642.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1642.severity = none
# SA1643: Destructor summary documentation should begin with standard text
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1643.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1643.severity = none
# SA1644: Documentation headers should not contain blank lines
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1644.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SA1644.severity = none
# SA1645: Included documentation file does not exist
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1645.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SA1645.severity = none
# SA1646: Included documentation XPath does not exist
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1646.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SA1646.severity = none
# SA1647: Include node does not contain valid file and path
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1647.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SA1647.severity = none
# SA1648: inheritdoc should be used with inheriting class
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1648.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1648.severity = none
# SA1649: File name should match first type name
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1649.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1649.severity = warning
# SA1650: Element documentation should be spelled correctly
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1650.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SA1650.severity = none
# SA1651: Do not use placeholder elements
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1651.md
-# Enabled: True, severity: warning
+# Enabled: True, Severity: warning
dotnet_diagnostic.SA1651.severity = none
# SX1101: Do not prefix local calls with 'this.'
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SX1101.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SX1101.severity = none
# SX1309: Field names should begin with underscore
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SX1309.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SX1309.severity = none
# SX1309S: Static field names should begin with underscore
# Help link: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SX1309S.md
-# Enabled: False, severity: warning
+# Enabled: False, Severity: warning
dotnet_diagnostic.SX1309S.severity = none
+
diff --git a/src/files/analyzers/manual_rules.editorconfig b/src/files/analyzers/manual_rules.editorconfig
new file mode 100644
index 0000000..2b3f6a2
--- /dev/null
+++ b/src/files/analyzers/manual_rules.editorconfig
@@ -0,0 +1,34 @@
+# These rules are not part of the generated rules.
+# The IDE rules in this file are only available in IDE, not in the build.
+
+# global_level must be higher than the NET Analyzer files
+is_global = true
+global_level = 0
+
+# CS1591: Missing XML comment for publicly visible type or member
+# Disabled because although XML documentation is enabled on the project, documenting everything is not always necessary
+dotnet_diagnostic.CS1591.severity = none
+
+# IDE0001: Simplify name (specifying a full type name is sometimes unnecessary)
+dotnet_diagnostic.IDE0001.severity = warning
+
+# IDE0002: Simplify member access (specifying a type name in a static invocation is sometimes unnecessary)
+dotnet_diagnostic.IDE0002.severity = suggestion
+
+# IDE0003: Remove this or Me qualification (enforce the use of 'this.')
+dotnet_diagnostic.IDE0003.severity = none
+
+# IDE0038: Use pattern matching to avoid is check followed by a cast (without variable)
+dotnet_diagnostic.IDE0038.severity = suggestion
+
+# IDE0049: Use language keywords instead of framework type names for type references
+dotnet_diagnostic.IDE0049.severity = warning
+
+# IDE0081: Remove unnecessary suppression operator
+dotnet_diagnostic.IDE0081.severity = none
+
+# IDE0084: Use pattern matching (IsNot operator)
+dotnet_diagnostic.IDE0084.severity = suggestion
+
+# IDE0140: Simplify object creation
+dotnet_diagnostic.IDE0140.severity = none
diff --git a/tools/ConfigurationFilesGenerator/ConfigurationFilesGenerator.csproj b/tools/ConfigurationFilesGenerator/ConfigurationFilesGenerator.csproj
new file mode 100644
index 0000000..01d0718
--- /dev/null
+++ b/tools/ConfigurationFilesGenerator/ConfigurationFilesGenerator.csproj
@@ -0,0 +1,19 @@
+
+
+
+ Exe
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tools/ConfigurationFilesGenerator/Program.cs b/tools/ConfigurationFilesGenerator/Program.cs
new file mode 100644
index 0000000..7de46e3
--- /dev/null
+++ b/tools/ConfigurationFilesGenerator/Program.cs
@@ -0,0 +1,390 @@
+#pragma warning disable IDE0058 // Expression value is never used
+using System.Globalization;
+using System.Runtime.Loader;
+using System.Xml.Linq;
+using Meziantou.Framework;
+using Microsoft.CodeAnalysis;
+using Microsoft.CodeAnalysis.Diagnostics;
+using NuGet.Common;
+using NuGet.Configuration;
+using NuGet.Packaging.Core;
+using NuGet.Packaging.Signing;
+using NuGet.Protocol.Core.Types;
+using NuGet.Protocol;
+using NuGet.Versioning;
+using System.Reflection;
+using System.Text;
+using System.Text.RegularExpressions;
+using NuGet.Frameworks;
+
+var rootFolder = GetRootFolderPath();
+
+var writtenFiles = 0;
+var packages = await GetAllReferencedNuGetPackages();
+await Parallel.ForEachAsync(packages, async (item, cancellationToken) =>
+{
+ var (packageId, packageVersion) = item;
+
+ Console.WriteLine(packageId + "@" + packageVersion);
+ var configurationFilePath = rootFolder / "src" / "files" / "analyzers" / ("Analyzer." + packageId + ".editorconfig");
+
+ var rules = new HashSet();
+ foreach (var assembly in await GetAnalyzerReferences(packageId, packageVersion))
+ {
+ foreach (var type in assembly.GetTypes())
+ {
+ if (type.IsAbstract || type.IsInterface || !typeof(DiagnosticAnalyzer).IsAssignableFrom(type))
+ {
+ continue;
+ }
+
+ var analyzer = (DiagnosticAnalyzer)Activator.CreateInstance(type)!;
+ foreach (var diagnostic in analyzer.SupportedDiagnostics)
+ {
+ rules.Add(new AnalyzerRule(diagnostic.Id, diagnostic.Title.ToString(CultureInfo.InvariantCulture), diagnostic.HelpLinkUri, diagnostic.IsEnabledByDefault, diagnostic.DefaultSeverity, diagnostic.IsEnabledByDefault ? diagnostic.DefaultSeverity : null));
+ }
+ }
+ }
+
+ if (rules.Count > 0)
+ {
+ var sb = new StringBuilder();
+ sb.AppendLine("# global_level must be higher than the NET Analyzer files");
+ sb.AppendLine("is_global = true");
+ sb.AppendLine("global_level = 0");
+
+ var currentConfiguration = GetConfiguration(configurationFilePath);
+
+ if (currentConfiguration.Unknowns.Length > 0)
+ {
+ foreach (var unknown in currentConfiguration.Unknowns)
+ {
+ sb.AppendLine(unknown);
+ }
+ }
+ else
+ {
+ sb.AppendLine();
+ }
+
+ foreach (var rule in rules.OrderBy(rule => rule.Id).ThenBy(rule => rule.Title))
+ {
+ var currentRuleConfiguration = currentConfiguration.Rules.FirstOrDefault(r => r.Id == rule.Id);
+ var severity = currentRuleConfiguration != null ? currentRuleConfiguration.Severity : rule.DefaultEffectiveSeverity;
+
+ sb.AppendLine($"# {rule.Id}: {rule.Title}");
+ if (!string.IsNullOrEmpty(rule.Url))
+ {
+ sb.AppendLine($"# Help link: {rule.Url}");
+ }
+
+ sb.AppendLine($"# Enabled: {rule.Enabled}, Severity: {GetSeverity(rule.DefaultSeverity)}");
+
+ if (currentRuleConfiguration?.Comments.Length > 0)
+ {
+ foreach (var comment in currentRuleConfiguration.Comments)
+ {
+ sb.AppendLine(comment);
+ }
+ }
+
+ sb.AppendLine($"dotnet_diagnostic.{rule.Id}.severity = {GetSeverity(severity)}");
+ sb.AppendLine();
+ }
+
+ if (File.Exists(configurationFilePath))
+ {
+ if ((await File.ReadAllTextAsync(configurationFilePath, cancellationToken)).ReplaceLineEndings() == sb.ToString().ReplaceLineEndings())
+ {
+ return;
+ }
+ }
+
+ configurationFilePath.CreateParentDirectory();
+ await File.WriteAllTextAsync(configurationFilePath, sb.ToString(), cancellationToken);
+ _ = Interlocked.Increment(ref writtenFiles);
+
+ static string GetSeverity(DiagnosticSeverity? severity)
+ {
+ return severity switch
+ {
+ null => "none",
+ DiagnosticSeverity.Hidden => "silent",
+ DiagnosticSeverity.Info => "suggestion",
+ DiagnosticSeverity.Warning => "warning",
+ DiagnosticSeverity.Error => "error",
+ _ => throw new Exception($"Severity '{severity}' is not supported"),
+ };
+ }
+ }
+});
+
+if (writtenFiles > 0)
+{
+ await Console.Error.WriteLineAsync("The content of the .editorconfig files is out of date. If this occurs on CI, you need to run the Build.ps1 command on your machine and commit the new .editorconfig files.");
+}
+
+return writtenFiles;
+
+async Task<(string Id, NuGetVersion Version)[]> GetAllReferencedNuGetPackages()
+{
+ var foundPackages = new HashSet();
+
+ var cache = new SourceCacheContext();
+ var repository = Repository.Factory.GetCoreV3("https://api.nuget.org/v3/index.json");
+ var resource = await repository.GetResourceAsync();
+
+ foreach (var package in GetReferencedNuGetPackages())
+ {
+ // Find the latest version if no version is specified
+ var version = package.Version is null ? null : NuGetVersion.Parse(package.Version);
+ if (version is null)
+ {
+ var metadata = await resource.GetMetadataAsync(package.Id, includePrerelease: false, includeUnlisted: false, cache, NullLogger.Instance, CancellationToken.None);
+ version = metadata.MaxBy(metadata => metadata.Identity.Version)!.Identity.Version;
+ }
+
+ var packageIdentity = new PackageIdentity(package.Id, version);
+ await ListAllPackageDependencies(packageIdentity, [repository], NuGetFramework.AnyFramework, cache, NullLogger.Instance, foundPackages, CancellationToken.None);
+ }
+
+ return foundPackages.Select(p => (p.Id, p.Version)).ToArray();
+
+ static async Task ListAllPackageDependencies(
+ PackageIdentity package,
+ IEnumerable repositories,
+ NuGetFramework framework,
+ SourceCacheContext cache,
+ ILogger logger,
+ HashSet dependencies,
+ CancellationToken cancellationToken)
+ {
+ if (dependencies.Contains(package))
+ {
+ return;
+ }
+
+ foreach (var repository in repositories)
+ {
+ var dependencyInfoResource = await repository.GetResourceAsync();
+ var dependencyInfo = await dependencyInfoResource.ResolvePackage(package, framework, cache, logger, cancellationToken);
+
+ if (dependencyInfo == null)
+ {
+ continue;
+ }
+
+ if (dependencies.Add(dependencyInfo))
+ {
+ foreach (var dependency in dependencyInfo.Dependencies)
+ {
+ await ListAllPackageDependencies(
+ new PackageIdentity(dependency.Id, dependency.VersionRange.MinVersion),
+ repositories,
+ framework,
+ cache,
+ logger,
+ dependencies,
+ cancellationToken);
+ }
+ }
+ }
+ }
+}
+
+IEnumerable<(string Id, string? Version)> GetReferencedNuGetPackages()
+{
+ foreach (var nuspecPath in Directory.GetFiles(rootFolder, "*.nuspec"))
+ {
+ var document = XDocument.Load(nuspecPath);
+ var ns = document.Root!.Name.Namespace;
+ foreach (var value in document.Descendants(ns + "dependency").Select(node => (node.Attribute("id")!.Value, node.Attribute("version")!.Value)))
+ {
+ yield return value;
+ }
+ }
+
+ // Add analyzers from the .NET SDK
+ foreach (var package in new[] { "Microsoft.CodeAnalysis.NetAnalyzers", "Microsoft.CodeAnalysis.CSharp.CodeStyle" })
+ {
+ yield return (package, null);
+ }
+}
+
+static FullPath GetRootFolderPath()
+{
+ var path = FullPath.CurrentDirectory();
+ while (!path.IsEmpty)
+ {
+ if (Directory.Exists(path / ".git"))
+ {
+ return path;
+ }
+
+ path = path.Parent;
+ }
+
+ return !path.IsEmpty ? path : throw new InvalidOperationException("Cannot find the root folder");
+}
+
+static async Task GetAnalyzerReferences(string packageId, NuGetVersion version)
+{
+ var logger = NullLogger.Instance;
+ var cancellationToken = CancellationToken.None;
+
+ var settings = Settings.LoadDefaultSettings(null);
+ var globalPackagesFolder = SettingsUtility.GetGlobalPackagesFolder(settings);
+ var source = "https://api.nuget.org/v3/index.json";
+
+ var cache = new SourceCacheContext();
+ var repository = Repository.Factory.GetCoreV3(source);
+ var resource = await repository.GetResourceAsync();
+
+ // Get the package from the global cache or download it
+ var package = GlobalPackagesFolderUtility.GetPackage(new PackageIdentity(packageId, version), globalPackagesFolder);
+ if (package is null || package.Status is DownloadResourceResultStatus.NotFound)
+ {
+ // Download the package
+ using var packageStream = new MemoryStream();
+ _ = await resource.CopyNupkgToStreamAsync(
+ packageId,
+ version,
+ packageStream,
+ cache,
+ logger,
+ cancellationToken);
+
+ _ = packageStream.Seek(0, SeekOrigin.Begin);
+
+ // Add it to the global package folder
+ package = await GlobalPackagesFolderUtility.AddPackageAsync(
+ source,
+ new PackageIdentity(packageId, version),
+ packageStream,
+ globalPackagesFolder,
+ parentId: Guid.Empty,
+ ClientPolicyContext.GetClientPolicy(settings, logger),
+ logger,
+ cancellationToken);
+ }
+
+ // Load all analyzers DLLs from the NuGet packages
+ var result = new List();
+ var groups = package.PackageReader.GetFiles("analyzers").GroupBy(Path.GetDirectoryName).ToArray();
+ foreach (var group in groups)
+ {
+ var context = new AssemblyLoadContext(null);
+ foreach (var file in group)
+ {
+ try
+ {
+ using var stream = package.PackageReader.GetStream(file);
+ result.Add(context.LoadFromStream(stream));
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine(ex);
+ }
+ }
+ }
+
+ return [.. result];
+}
+
+static (AnalyzerConfiguration[] Rules, string[] Unknowns) GetConfiguration(FullPath editorconfig)
+{
+ var rules = new List();
+ var unknowns = new List();
+
+ var currentComment = new List();
+ try
+ {
+ var lines = File.ReadAllLines(editorconfig);
+
+ foreach (var line in lines)
+ {
+ try
+ {
+ if (line.StartsWith('#'))
+ {
+ if (line.StartsWith("# Enabled: ", StringComparison.Ordinal))
+ {
+ continue;
+ }
+
+ if (line.StartsWith("# Default severity: ", StringComparison.Ordinal))
+ {
+ continue;
+ }
+
+ if (line.StartsWith("# Help link: ", StringComparison.Ordinal))
+ {
+ continue;
+ }
+
+ currentComment.Add(line);
+ continue;
+ }
+
+ if (line.StartsWith("is_global", StringComparison.Ordinal))
+ {
+ continue;
+ }
+
+ if (line.StartsWith("global_level", StringComparison.Ordinal))
+ {
+ continue;
+ }
+
+ var match = Regex.Match(line, @"^dotnet_diagnostic\.(?.+?).severity\s*=\s*(?[a-z]+)");
+ if (match.Success)
+ {
+ DiagnosticSeverity? diagnosticSeverity = null;
+ var severityValue = match.Groups["Severity"].Value;
+ if (severityValue == "silent")
+ {
+ diagnosticSeverity = DiagnosticSeverity.Hidden;
+ }
+ else if (severityValue == "suggestion")
+ {
+ diagnosticSeverity = DiagnosticSeverity.Info;
+ }
+ else if (Enum.TryParse(severityValue, ignoreCase: true, out var severity))
+ {
+ diagnosticSeverity = severity;
+ }
+
+ rules.Add(new AnalyzerConfiguration(match.Groups["RuleId"].Value, currentComment.Skip(1).ToArray(), diagnosticSeverity));
+ }
+ else
+ {
+ foreach (var comment in currentComment)
+ {
+ unknowns.Add(comment);
+ }
+
+ if (rules.Count == 0 || !string.IsNullOrEmpty(line))
+ {
+ unknowns.Add(line);
+ }
+ }
+ }
+ finally
+ {
+ if (!line.StartsWith('#'))
+ {
+ currentComment.Clear();
+ }
+ }
+ }
+ }
+ catch
+ {
+ }
+
+ return (rules.ToArray(), unknowns.ToArray());
+}
+
+internal sealed record AnalyzerConfiguration(string Id, string[] Comments, DiagnosticSeverity? Severity);
+
+internal sealed record AnalyzerRule(string Id, string Title, string? Url, bool Enabled, DiagnosticSeverity DefaultSeverity, DiagnosticSeverity? DefaultEffectiveSeverity);
diff --git a/wl-dotnet-codingstandards.sln b/wl-dotnet-codingstandards.sln
index 56e8104..b75d619 100644
--- a/wl-dotnet-codingstandards.sln
+++ b/wl-dotnet-codingstandards.sln
@@ -7,6 +7,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{C1F5A879
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Workleap.DotNet.CodingStandards.Tests", "tests\Workleap.DotNet.CodingStandards.Tests\Workleap.DotNet.CodingStandards.Tests.csproj", "{640037BA-49DF-4BBD-9858-3DC89E2739FD}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConfigurationFilesGenerator", "tools\ConfigurationFilesGenerator\ConfigurationFilesGenerator.csproj", "{2A95B554-DB07-434B-82C3-8D056819DED4}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -17,6 +19,10 @@ Global
{640037BA-49DF-4BBD-9858-3DC89E2739FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{640037BA-49DF-4BBD-9858-3DC89E2739FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{640037BA-49DF-4BBD-9858-3DC89E2739FD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2A95B554-DB07-434B-82C3-8D056819DED4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2A95B554-DB07-434B-82C3-8D056819DED4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2A95B554-DB07-434B-82C3-8D056819DED4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2A95B554-DB07-434B-82C3-8D056819DED4}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE