# ATC coding rules - https://github.com/atc-net/atc-coding-rules
# Version: 1.0.5
# Updated: 02-05-2021
# Location: Test
# Inspired by: https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/code-style-rule-options

##########################################
# Code Analyzers Rules
##########################################
[*.{cs,csx,cake}]

# AsyncFixer
# http://www.asyncfixer.com


# Asyncify
# https://github.com/hvanbakel/Asyncify-CSharp


# Meziantou
# https://www.meziantou.net/enforcing-asynchronous-code-good-practices-using-a-roslyn-analyzer.htm
dotnet_diagnostic.MA0002.severity = silent			# MA0002: IEqualityComparer<string> or IComparer<string> is missing
dotnet_diagnostic.MA0004.severity = none            # https://github.com/atc-net/atc-coding-rules/blob/main/documentation/CodeAnalyzersRules/Meziantou/MA0004.md

# Microsoft - Code Analysis
# https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/
dotnet_diagnostic.CA1064.severity = suggestion      # CA1064: Exceptions should be public
dotnet_diagnostic.CA1707.severity = none            # https://github.com/atc-net/atc-coding-rules/blob/main/documentation/CodeAnalyzersRules/MicrosoftCodeAnalysis/CA1707.md
dotnet_diagnostic.CA2007.severity = none            # https://github.com/atc-net/atc-coding-rules/blob/main/documentation/CodeAnalyzersRules/MicrosoftCodeAnalysis/CA2007.md

# SecurityCodeScan
# https://security-code-scan.github.io/


# SonarAnalyzer.CSharp
# https://rules.sonarsource.com/csharp


##########################################
# Custom - Code Analyzers Rules
##########################################

dotnet_diagnostic.CA1819.severity = suggestion		# CA1819: Properties should not return arrays
dotnet_diagnostic.CA1849.severity = suggestion		# CA1849: Call async methods when in an async method
dotnet_diagnostic.CA2255.severity = suggestion		# CA2255:  The 'ModuleInitializer' attribute is only intended to be used in application code or advanced source generator scenarios
dotnet_diagnostic.xUnit1026.severity = none			# xUnit1026: Theory methods should use all of their parameters
dotnet_diagnostic.xUnit1034.severity = none			# xUnit1034: Null should not be used for type parameter
dotnet_diagnostic.S1144.severity = suggestion		# S1144: Unused private types or members should be removed
dotnet_diagnostic.S2094.severity = suggestion		# S2094: Classes should not be empty
dotnet_diagnostic.S6562.severity = suggestion		# "Provide the "DateTimeKind" when creating this object.
dotnet_diagnostic.S6966.severity = suggestion		# S6966: Await method instead
