is_global = true ## BizHawk internal rules # Do not use anonymous delegates dotnet_diagnostic.BHI1001.severity = error # Do not use anonymous types (classes) dotnet_diagnostic.BHI1002.severity = error # Do not use query expression syntax dotnet_diagnostic.BHI1003.severity = error # Verbatim interpolated strings should begin $@, not @$ dotnet_diagnostic.BHI1004.severity = error # Default branch of switch expression should throw InvalidOperationException/SwitchExpressionException or not throw dotnet_diagnostic.BHI1005.severity = error # Do not discard local variables dotnet_diagnostic.BHI1006.severity = error # Don't call this.GetType() in sealed type, use typeof operator dotnet_diagnostic.BHI1100.severity = error # Don't call this.GetType(), use typeof operator (or replace subtype check with better encapsulation) dotnet_diagnostic.BHI1101.severity = error # Don't call typeof(T).Name, use nameof operator dotnet_diagnostic.BHI1102.severity = error # Don't call typeof(T).ToString(), use nameof operator or typeof(T).FullName dotnet_diagnostic.BHI1103.severity = error # Brackets of collection expression should be separated with spaces dotnet_diagnostic.BHI1110.severity = warning # Check result of IDictionary.TryGetValue, or discard it if default(T) is desired dotnet_diagnostic.BHI1200.severity = error # Call to FirstOrDefault when elements are of a value type; FirstOrNull may have been intended dotnet_diagnostic.BHI3100.severity = error # Use .Order()/.OrderDescending() shorthand dotnet_diagnostic.BHI3101.severity = warning # Throw NotImplementedException from methods/props marked [FeatureNotImplemented] dotnet_diagnostic.BHI3300.severity = error ## Globalization rules # Specify IFormatProvider dotnet_diagnostic.CA1305.severity = error dotnet_code_quality.CA1305.excluded_symbol_names = T:System.Byte|T:System.SByte|T:System.Int16|T:System.UInt16|T:System.Int32|T:System.UInt32|T:System.Int64|T:System.UInt64|T:System.String|T:System.Text.StringBuilder|T:System.Convert # Specify marshalling for P/Invoke string arguments dotnet_diagnostic.CA2101.severity = suggestion ## Performance rules # Do not initialize unnecessarily dotnet_diagnostic.CA1805.severity = silent # Mark members as static dotnet_diagnostic.CA1822.severity = silent # Use property instead of Linq Enumerable method dotnet_code_quality.CA1826.exclude_ordefault_methods = true # Avoid StringBuilder parameters for P/Invokes dotnet_diagnostic.CA1838.severity = suggestion ## Usage rules # Call GC.SuppressFinalize correctly dotnet_diagnostic.CA1816.severity = none # Do not raise reserved exception types dotnet_diagnostic.CA2201.severity = suggestion # Implement serialization constructors dotnet_diagnostic.CA2229.severity = silent ## .NET DocumentationAnalyzers style rules # Place text in paragraphs dotnet_diagnostic.DOC100.severity = silent # Use child blocks consistently dotnet_diagnostic.DOC101.severity = silent # Use child blocks consistently across elements of the same kind dotnet_diagnostic.DOC102.severity = silent # Use Unicode characters # unnecessary HTML entities also get picked up by CS1570, which seems more reliable dotnet_diagnostic.DOC103.severity = error # Prefer '' to 'keyword' for referencing language keywords dotnet_diagnostic.DOC104.severity = warning # Prefer '' to 'parameter' for referencing parameters dotnet_diagnostic.DOC105.severity = warning # Prefer '' to 'type_parameter' for referencing type parameters dotnet_diagnostic.DOC106.severity = warning # Prefer '' to 'target' for referencing code elements dotnet_diagnostic.DOC107.severity = warning # Avoid empty paragraphs dotnet_diagnostic.DOC108.severity = error ## .NET DocumentationAnalyzers portability rules # Use XML documentation syntax dotnet_diagnostic.DOC200.severity = error # Item should have description dotnet_diagnostic.DOC201.severity = error # Use section elements correctly dotnet_diagnostic.DOC202.severity = error # Use block elements correctly dotnet_diagnostic.DOC203.severity = error # Use inline elements correctly # but this doesn't pick up in , for example... dotnet_diagnostic.DOC204.severity = error # 'langword' attribute value should be a language keyword dotnet_diagnostic.DOC207.severity = error # 'href' attribute value should be a URI # a lot of false negatives with this one too dotnet_diagnostic.DOC209.severity = error ## Meziantou.Analyzers rules # StringComparison is missing dotnet_diagnostic.MA0001.severity = silent # IEqualityComparer or IComparer is missing dotnet_diagnostic.MA0002.severity = silent # Add parameter name to improve readability dotnet_diagnostic.MA0003.severity = silent # Use Task.ConfigureAwait(false) dotnet_diagnostic.MA0004.severity = silent # Use Array.Empty() dotnet_diagnostic.MA0005.severity = silent # Use String.Equals instead of equality operator dotnet_diagnostic.MA0006.severity = silent # Add a comma after the last value dotnet_diagnostic.MA0007.severity = silent # Add StructLayoutAttribute dotnet_diagnostic.MA0008.severity = silent # Add regex evaluation timeout dotnet_diagnostic.MA0009.severity = silent # Mark attributes with AttributeUsageAttribute dotnet_diagnostic.MA0010.severity = error # IFormatProvider is missing dotnet_diagnostic.MA0011.severity = silent # Do not raise reserved exception type dotnet_diagnostic.MA0012.severity = error # Types should not extend System.ApplicationException dotnet_diagnostic.MA0013.severity = error # Do not raise System.ApplicationException type dotnet_diagnostic.MA0014.severity = error # Specify the parameter name in ArgumentException dotnet_diagnostic.MA0015.severity = error # Prefer returning collection abstraction instead of implementation dotnet_diagnostic.MA0016.severity = silent # Abstract types should not have public or internal constructors dotnet_diagnostic.MA0017.severity = silent # Do not declare static members on generic types dotnet_diagnostic.MA0018.severity = error # Use EventArgs.Empty dotnet_diagnostic.MA0019.severity = error # Use direct methods instead of LINQ methods dotnet_diagnostic.MA0020.severity = error # Use StringComparer.GetHashCode instead of string.GetHashCode dotnet_diagnostic.MA0021.severity = silent # Return Task.FromResult instead of returning null dotnet_diagnostic.MA0022.severity = error # Add RegexOptions.ExplicitCapture dotnet_diagnostic.MA0023.severity = silent # Use an explicit StringComparer when possible dotnet_diagnostic.MA0024.severity = error # Implement the functionality instead of throwing NotImplementedException dotnet_diagnostic.MA0025.severity = silent # Fix TODO comment dotnet_diagnostic.MA0026.severity = silent # Do not remove original exception dotnet_diagnostic.MA0027.severity = error # Optimize StringBuilder usage dotnet_diagnostic.MA0028.severity = silent # Combine LINQ methods dotnet_diagnostic.MA0029.severity = error # Remove useless OrderBy call dotnet_diagnostic.MA0030.severity = error # Optimize Enumerable.Count() usage dotnet_diagnostic.MA0031.severity = error # Use an overload with a CancellationToken argument dotnet_diagnostic.MA0032.severity = silent # Do not tag instance fields with ThreadStaticAttribute dotnet_diagnostic.MA0033.severity = error # Do not use dangerous threading methods dotnet_diagnostic.MA0035.severity = error # Make class static dotnet_diagnostic.MA0036.severity = silent # Remove empty statement dotnet_diagnostic.MA0037.severity = error # Make method static dotnet_diagnostic.MA0038.severity = silent # Do not write your own certificate validation method dotnet_diagnostic.MA0039.severity = error # Flow the cancellation token dotnet_diagnostic.MA0040.severity = silent # Make property static dotnet_diagnostic.MA0041.severity = silent # Do not use blocking calls in an async method dotnet_diagnostic.MA0042.severity = error # Use nameof operator in ArgumentException dotnet_diagnostic.MA0043.severity = error # Remove useless ToString call dotnet_diagnostic.MA0044.severity = silent # Do not use blocking call in a sync method (need to make containing method async) dotnet_diagnostic.MA0045.severity = silent # Use EventHandler to declare events dotnet_diagnostic.MA0046.severity = silent # Declare types in namespaces dotnet_diagnostic.MA0047.severity = error # File name must match type name dotnet_diagnostic.MA0048.severity = silent # Type name should not match containing namespace dotnet_diagnostic.MA0049.severity = silent # Validate arguments correctly in iterator methods dotnet_diagnostic.MA0050.severity = error # Method is too long dotnet_diagnostic.MA0051.severity = silent # Replace constant Enum.ToString with nameof dotnet_diagnostic.MA0052.severity = error # Make class sealed dotnet_diagnostic.MA0053.severity = silent # Embed the caught exception as innerException dotnet_diagnostic.MA0054.severity = error # Do not use finalizer dotnet_diagnostic.MA0055.severity = silent # Do not call overridable members in constructor dotnet_diagnostic.MA0056.severity = silent # Class name should end with 'Attribute' dotnet_diagnostic.MA0057.severity = error # Class name should end with 'Exception' dotnet_diagnostic.MA0058.severity = error # Class name should end with 'EventArgs' dotnet_diagnostic.MA0059.severity = silent # The value returned by Stream.Read/Stream.ReadAsync is not used dotnet_diagnostic.MA0060.severity = silent # Method overrides should not change parameter defaults dotnet_diagnostic.MA0061.severity = silent # Non-flags enums should not be marked with "FlagsAttribute" dotnet_diagnostic.MA0062.severity = silent # Use Where before OrderBy dotnet_diagnostic.MA0063.severity = error # Avoid locking on publicly accessible instance dotnet_diagnostic.MA0064.severity = silent # Default ValueType.Equals or HashCode is used for struct's equality dotnet_diagnostic.MA0065.severity = error # Hash table unfriendly type is used in a hash table dotnet_diagnostic.MA0066.severity = error # Use Guid.Empty dotnet_diagnostic.MA0067.severity = error # Invalid parameter name for nullable attribute dotnet_diagnostic.MA0068.severity = error # Non-constant static fields should not be visible dotnet_diagnostic.MA0069.severity = silent # Obsolete attributes should include explanations dotnet_diagnostic.MA0070.severity = warning # Avoid using redundant else dotnet_diagnostic.MA0071.severity = silent # Do not throw from a finally block dotnet_diagnostic.MA0072.severity = error # Avoid comparison with bool constant dotnet_diagnostic.MA0073.severity = silent # Avoid implicit culture-sensitive methods dotnet_diagnostic.MA0074.severity = silent # Do not use implicit culture-sensitive ToString dotnet_diagnostic.MA0075.severity = silent # Do not use implicit culture-sensitive ToString in interpolated strings dotnet_diagnostic.MA0076.severity = silent # A class that provides Equals(T) should implement IEquatable dotnet_diagnostic.MA0077.severity = error # Use 'Cast' instead of 'Select' to cast dotnet_diagnostic.MA0078.severity = silent # Flow the cancellation token using .WithCancellation() dotnet_diagnostic.MA0079.severity = error # Use a cancellation token using .WithCancellation() dotnet_diagnostic.MA0080.severity = error # Method overrides should not omit params keyword dotnet_diagnostic.MA0081.severity = error # NaN should not be used in comparisons dotnet_diagnostic.MA0082.severity = error # ConstructorArgument parameters should exist in constructors dotnet_diagnostic.MA0083.severity = error # Local variable should not hide other symbols dotnet_diagnostic.MA0084.severity = warning # Anonymous delegates should not be used to unsubscribe from Events dotnet_diagnostic.MA0085.severity = error # Do not throw from a finalizer dotnet_diagnostic.MA0086.severity = error # Parameters with [DefaultParameterValue] attributes should also be marked [Optional] dotnet_diagnostic.MA0087.severity = error # Use [DefaultParameterValue] instead of [DefaultValue] dotnet_diagnostic.MA0088.severity = error # Optimize string method usage dotnet_diagnostic.MA0089.severity = error # Remove empty else/finally block dotnet_diagnostic.MA0090.severity = silent # Sender should be 'this' for instance events dotnet_diagnostic.MA0091.severity = silent # Sender should be 'null' for static events dotnet_diagnostic.MA0092.severity = error # EventArgs should not be null dotnet_diagnostic.MA0093.severity = error # A class that provides CompareTo(T) should implement IComparable dotnet_diagnostic.MA0094.severity = error # A class that implements IEquatable should override Equals(object) dotnet_diagnostic.MA0095.severity = error # A class that implements IComparable should also implement IEquatable dotnet_diagnostic.MA0096.severity = silent # A class that implements IComparable or IComparable should override comparison operators dotnet_diagnostic.MA0097.severity = silent # Use indexer instead of LINQ methods dotnet_diagnostic.MA0098.severity = warning # Use Explicit enum value instead of 0 dotnet_diagnostic.MA0099.severity = silent # Await task before disposing of resources dotnet_diagnostic.MA0100.severity = error # String contains an implicit end of line character dotnet_diagnostic.MA0101.severity = silent # Make member readonly dotnet_diagnostic.MA0102.severity = silent # Use SequenceEqual instead of equality operator dotnet_diagnostic.MA0103.severity = error # Do not create a type with a name from the BCL dotnet_diagnostic.MA0104.severity = error # Use the lambda parameters instead of using a closure dotnet_diagnostic.MA0105.severity = error # Avoid closure by using an overload with the 'factoryArgument' parameter dotnet_diagnostic.MA0106.severity = error # Do not use culture-sensitive object.ToString dotnet_diagnostic.MA0107.severity = silent # Remove redundant argument value dotnet_diagnostic.MA0108.severity = error # Consider adding an overload with a Span or Memory dotnet_diagnostic.MA0109.severity = silent # Use the Regex source generator dotnet_diagnostic.MA0110.severity = error # Both if and else branch have identical code dotnet_diagnostic.MA0140.severity = warning ## Menees.Analyzers rules # Line is too long dotnet_diagnostic.MEN002.severity = silent # Method is too long dotnet_diagnostic.MEN003.severity = silent # Property accessor is too long dotnet_diagnostic.MEN004.severity = silent # File is too long dotnet_diagnostic.MEN005.severity = silent # Use a single return dotnet_diagnostic.MEN007.severity = silent # File name should match type dotnet_diagnostic.MEN008.severity = silent # Use the preferred exception type dotnet_diagnostic.MEN009.severity = silent # Avoid magic numbers dotnet_diagnostic.MEN010.severity = silent # Flags should be powers of two dotnet_diagnostic.MEN012.severity = silent # Use UTC time dotnet_diagnostic.MEN013.severity = silent # Prefer TryGetValue dotnet_diagnostic.MEN014.severity = warning # Use Preferred Terms dotnet_diagnostic.MEN015.severity = silent ## StyleCop spacing rules # Keywords should be spaced correctly dotnet_diagnostic.SA1000.severity = silent # Commas should be spaced correctly dotnet_diagnostic.SA1001.severity = silent # Semicolons should be spaced correctly dotnet_diagnostic.SA1002.severity = silent # Symbols should be spaced correctly dotnet_diagnostic.SA1003.severity = silent # Documentation lines should begin with single space dotnet_diagnostic.SA1004.severity = silent # Single line comments should begin with single space dotnet_diagnostic.SA1005.severity = silent # Preprocessor keywords should not be preceded by space dotnet_diagnostic.SA1006.severity = error # Opening parenthesis should be spaced correctly dotnet_diagnostic.SA1008.severity = silent # Closing parenthesis should be spaced correctly dotnet_diagnostic.SA1009.severity = silent # Opening square brackets should be spaced correctly dotnet_diagnostic.SA1010.severity = silent # Closing square brackets should be spaced correctly dotnet_diagnostic.SA1011.severity = silent # Opening braces should be spaced correctly dotnet_diagnostic.SA1012.severity = silent # Closing braces should be spaced correctly dotnet_diagnostic.SA1013.severity = silent # Closing generic bracket should be followed by a space dotnet_diagnostic.SA1015.severity = silent # Member access symbols should be spaced correctly dotnet_diagnostic.SA1019.severity = error # Negative signs should be spaced correctly dotnet_diagnostic.SA1021.severity = silent # Dereference and access of symbols should be spaced correctly dotnet_diagnostic.SA1023.severity = silent # Colons should be spaced correctly dotnet_diagnostic.SA1024.severity = silent # Code should not contain multiple whitespace in a row dotnet_diagnostic.SA1025.severity = silent # Use tabs correctly dotnet_diagnostic.SA1027.severity = silent # Code should not contain trailing whitespace dotnet_diagnostic.SA1028.severity = silent ## StyleCop readability rules # Do not prefix calls with base unless local implementation exists dotnet_diagnostic.SA1100.severity = error # Prefix local calls with this dotnet_diagnostic.SA1101.severity = silent # Code should not contain multiple statements on one line dotnet_diagnostic.SA1107.severity = silent # Block statements should not contain embedded comments dotnet_diagnostic.SA1108.severity = silent # Opening parenthesis or bracket should be on declaration line dotnet_diagnostic.SA1110.severity = silent # Closing parenthesis should be on line of last parameter dotnet_diagnostic.SA1111.severity = silent # Parameter list should follow declaration dotnet_diagnostic.SA1114.severity = silent # Split parameters should start on line after declaration dotnet_diagnostic.SA1116.severity = silent # Parameters should be on same line or separate lines dotnet_diagnostic.SA1117.severity = silent # Parameter should not span multiple lines dotnet_diagnostic.SA1118.severity = silent # Comments should contain text dotnet_diagnostic.SA1120.severity = warning # Use built-in type alias dotnet_diagnostic.SA1121.severity = error # Use string.Empty for empty strings dotnet_diagnostic.SA1122.severity = silent # Generic type constraints should be on their own line dotnet_diagnostic.SA1127.severity = silent # Put constructor initializers on their own line dotnet_diagnostic.SA1128.severity = silent # Do not use default value type constructor dotnet_diagnostic.SA1129.severity = error # Use readable conditions dotnet_diagnostic.SA1131.severity = silent # Do not combine fields dotnet_diagnostic.SA1132.severity = silent # Do not combine attributes dotnet_diagnostic.SA1133.severity = error # Attributes should not share line dotnet_diagnostic.SA1134.severity = silent # Enum values should be on separate lines dotnet_diagnostic.SA1136.severity = silent # Elements should have the same indentation dotnet_diagnostic.SA1137.severity = error ## StyleCop ordering rules # Elements should appear in the correct order dotnet_diagnostic.SA1201.severity = silent # Elements should be ordered by access dotnet_diagnostic.SA1202.severity = silent # Constants should appear before fields dotnet_diagnostic.SA1203.severity = silent # Static elements should appear before instance elements dotnet_diagnostic.SA1204.severity = silent # System using directives should be placed before other using directives dotnet_diagnostic.SA1208.severity = error # Using directives should be ordered alphabetically by namespace dotnet_diagnostic.SA1210.severity = silent # Using alias directives should be ordered alphabetically by alias name dotnet_diagnostic.SA1211.severity = error # Readonly fields should appear before non-readonly fields dotnet_diagnostic.SA1214.severity = silent ## StyleCop naming rules # Element should begin with upper-case letter dotnet_diagnostic.SA1300.severity = silent # Interface names should begin with I dotnet_diagnostic.SA1302.severity = silent # Const field names should begin with upper-case letter dotnet_diagnostic.SA1303.severity = silent # Non-private readonly fields should begin with upper-case letter dotnet_diagnostic.SA1304.severity = silent # Field names should begin with lower-case letter dotnet_diagnostic.SA1306.severity = silent # Accessible fields should begin with upper-case letter dotnet_diagnostic.SA1307.severity = silent # Variable names should not be prefixed dotnet_diagnostic.SA1308.severity = silent # Field names should not begin with underscore dotnet_diagnostic.SA1309.severity = silent # Field names should not contain underscore dotnet_diagnostic.SA1310.severity = silent # Static readonly fields should begin with upper-case letter dotnet_diagnostic.SA1311.severity = silent # Variable names should begin with lower-case letter dotnet_diagnostic.SA1312.severity = silent # Parameter names should begin with lower-case letter dotnet_diagnostic.SA1313.severity = silent ## StyleCop maintainability rules # Statement should not use unnecessary parenthesis # I put this rule in this section because the defaults put it here. dotnet_diagnostic.SA1119.severity = silent # Access modifier should be declared dotnet_diagnostic.SA1400.severity = error # Fields should be private dotnet_diagnostic.SA1401.severity = silent # File may only contain a single type dotnet_diagnostic.SA1402.severity = silent # Debug.Assert should provide message text dotnet_diagnostic.SA1405.severity = silent # Arithmetic expressions should declare precedence dotnet_diagnostic.SA1407.severity = silent # Conditional expressions should declare precedence dotnet_diagnostic.SA1408.severity = silent # Use trailing comma in multi-line initializers dotnet_diagnostic.SA1413.severity = silent ## StyleCop layout rules # Braces for multi-line statements should not share line dotnet_diagnostic.SA1500.severity = silent # Statement should not be on a single line dotnet_diagnostic.SA1501.severity = silent # Element should not be on a single line dotnet_diagnostic.SA1502.severity = silent # Braces should not be omitted dotnet_diagnostic.SA1503.severity = silent # Opening braces should not be followed by blank line dotnet_diagnostic.SA1505.severity = silent # Element documentation headers should not be followed by blank line dotnet_diagnostic.SA1506.severity = silent # Code should not contain multiple blank lines in a row dotnet_diagnostic.SA1507.severity = silent # Closing braces should not be preceded by blank line dotnet_diagnostic.SA1508.severity = silent # Opening braces should not be preceded by blank line dotnet_diagnostic.SA1509.severity = silent # Chained statement blocks should not be preceded by blank line dotnet_diagnostic.SA1510.severity = silent # Single-line comments should not be followed by blank line dotnet_diagnostic.SA1512.severity = silent # Closing brace should be followed by blank line dotnet_diagnostic.SA1513.severity = silent # Element documentation header should be preceded by blank line dotnet_diagnostic.SA1514.severity = silent # Single-line comment should be preceded by blank line dotnet_diagnostic.SA1515.severity = silent # Elements should be separated by blank line dotnet_diagnostic.SA1516.severity = silent # Code should not contain blank lines at start of file dotnet_diagnostic.SA1517.severity = silent # Use line endings correctly at end of file dotnet_diagnostic.SA1518.severity = silent # Braces should not be omitted from multi-line child statement dotnet_diagnostic.SA1519.severity = silent # Use braces consistently dotnet_diagnostic.SA1520.severity = silent ## StyleCop documentation rules # Element documentation should have summary text dotnet_diagnostic.SA1606.severity = silent # Property documentation should have value text dotnet_diagnostic.SA1610.severity = silent # Element parameter documentation should match element parameters dotnet_diagnostic.SA1612.severity = silent # Element parameter documentation should have text dotnet_diagnostic.SA1614.severity = silent # Element return value documentation should have text dotnet_diagnostic.SA1616.severity = silent # Generic type parameter documentation should have text dotnet_diagnostic.SA1622.severity = silent # Property summary documentation should match accessors dotnet_diagnostic.SA1623.severity = silent # Element documentation should not be copied and pasted dotnet_diagnostic.SA1625.severity = silent # Documentation text should not be empty dotnet_diagnostic.SA1627.severity = silent # Documentation text should end with a period dotnet_diagnostic.SA1629.severity = silent # File should have header dotnet_diagnostic.SA1633.severity = silent # Constructor summary documentation should begin with standard text dotnet_diagnostic.SA1642.severity = silent # File name should match first type name dotnet_diagnostic.SA1649.severity = silent