553 lines
18 KiB
XML
553 lines
18 KiB
XML
<?xml version="1.0"?>
|
|
<RuleSet Name="BizHawk Rules" Description="Applies to all projects in the solution -- or, it will eventually." ToolsVersion="14.0">
|
|
<Rules AnalyzerId="Microsoft.CodeAnalysis.FxCopAnalyzers" RuleNamespace="Microsoft.CodeAnalysis.FxCopAnalyzers">
|
|
<!-- Types that own disposable fields should be disposable -->
|
|
<Rule Id="CA1001" Action="Hidden" />
|
|
|
|
<!-- Collections should implement generic interface -->
|
|
<Rule Id="CA1010" Action="Hidden" />
|
|
|
|
<!-- Mark assemblies with assembly version -->
|
|
<Rule Id="CA1016" Action="Hidden" />
|
|
|
|
<!-- Mark attributes with AttributeUsageAttribute -->
|
|
<Rule Id="CA1018" Action="Hidden" />
|
|
|
|
<!-- Enum Storage should be Int32 -->
|
|
<Rule Id="CA1028" Action="Hidden" />
|
|
|
|
<!-- Do not catch general exception types -->
|
|
<Rule Id="CA1031" Action="Hidden" />
|
|
|
|
<!-- Implement standard exception constructors -->
|
|
<Rule Id="CA1032" Action="Hidden" />
|
|
|
|
<!-- Nested types should not be visible -->
|
|
<Rule Id="CA1034" Action="Hidden" />
|
|
|
|
<!-- Override methods on comparable types -->
|
|
<Rule Id="CA1036" Action="Hidden" />
|
|
|
|
<!-- Avoid empty interfaces -->
|
|
<Rule Id="CA1040" Action="Hidden" />
|
|
|
|
<!-- Provide ObsoleteAttribute message -->
|
|
<Rule Id="CA1041" Action="Hidden" />
|
|
|
|
<!-- Use Integral Or String Argument For Indexers -->
|
|
<Rule Id="CA1043" Action="Hidden" />
|
|
|
|
<!-- Properties should not be write only -->
|
|
<Rule Id="CA1044" Action="Hidden" />
|
|
|
|
<!-- Do not declare visible instance fields -->
|
|
<Rule Id="CA1051" Action="Hidden" />
|
|
|
|
<!-- Static holder types should be Static or NotInheritable -->
|
|
<Rule Id="CA1052" Action="Hidden" />
|
|
|
|
<!-- Uri parameters should not be strings -->
|
|
<Rule Id="CA1054" Action="Hidden" />
|
|
|
|
<!-- Uri return values should not be strings -->
|
|
<Rule Id="CA1055" Action="Hidden" />
|
|
|
|
<!-- Validate arguments of public methods -->
|
|
<Rule Id="CA1062" Action="Hidden" />
|
|
|
|
<!-- Implement IDisposable Correctly -->
|
|
<Rule Id="CA1063" Action="Hidden" />
|
|
|
|
<!-- Exceptions should be public -->
|
|
<Rule Id="CA1064" Action="Hidden" />
|
|
|
|
<!-- Do not raise exceptions in unexpected locations -->
|
|
<Rule Id="CA1065" Action="Hidden" />
|
|
|
|
<!-- Type {0} should implement IEquatable<T> because it overrides Equals -->
|
|
<Rule Id="CA1066" Action="Hidden" />
|
|
|
|
<!-- Do not pass literals as localized parameters -->
|
|
<Rule Id="CA1303" Action="Hidden" />
|
|
|
|
<!-- Specify CultureInfo -->
|
|
<Rule Id="CA1304" Action="Hidden" />
|
|
|
|
<!-- Specify IFormatProvider -->
|
|
<Rule Id="CA1305" Action="Hidden" />
|
|
|
|
<!-- Specify StringComparison -->
|
|
<Rule Id="CA1307" Action="Hidden" />
|
|
|
|
<!-- Normalize strings to uppercase -->
|
|
<Rule Id="CA1308" Action="Hidden" />
|
|
|
|
<!-- P/Invokes should not be visible -->
|
|
<Rule Id="CA1401" Action="Hidden" />
|
|
|
|
<!-- Use nameof to express symbol names -->
|
|
<Rule Id="CA1507" Action="Hidden" />
|
|
|
|
<!-- Identifiers should not contain underscores -->
|
|
<Rule Id="CA1707" Action="Hidden" />
|
|
|
|
<!-- Identifiers should have correct suffix -->
|
|
<Rule Id="CA1710" Action="Hidden" />
|
|
|
|
<!-- Do not prefix enum values with type name -->
|
|
<Rule Id="CA1712" Action="Hidden" />
|
|
|
|
<!-- Flags enums should have plural names -->
|
|
<Rule Id="CA1714" Action="Hidden" />
|
|
|
|
<!-- Identifiers should have correct prefix -->
|
|
<Rule Id="CA1715" Action="Hidden" />
|
|
|
|
<!-- Identifiers should not match keywords -->
|
|
<Rule Id="CA1716" Action="Hidden" />
|
|
|
|
<!-- Only FlagsAttribute enums should have plural names -->
|
|
<Rule Id="CA1717" Action="Hidden" />
|
|
|
|
<!-- Identifier contains type name -->
|
|
<Rule Id="CA1720" Action="Hidden" />
|
|
|
|
<!-- Property names should not match get methods -->
|
|
<Rule Id="CA1721" Action="Hidden" />
|
|
|
|
<!-- Type names should not match namespaces -->
|
|
<Rule Id="CA1724" Action="Hidden" />
|
|
|
|
<!-- Review unused parameters -->
|
|
<Rule Id="CA1801" Action="Hidden" />
|
|
|
|
<!-- Use literals where appropriate -->
|
|
<Rule Id="CA1802" Action="Hidden" />
|
|
|
|
<!-- Do not ignore method results -->
|
|
<Rule Id="CA1806" Action="Hidden" />
|
|
|
|
<!-- Initialize reference type static fields inline -->
|
|
<Rule Id="CA1810" Action="Hidden" />
|
|
|
|
<!-- Avoid uninstantiated internal classes -->
|
|
<Rule Id="CA1812" Action="Hidden" />
|
|
|
|
<!-- Prefer jagged arrays over multidimensional -->
|
|
<Rule Id="CA1814" Action="Hidden" />
|
|
|
|
<!-- Override equals and operator equals on value types -->
|
|
<Rule Id="CA1815" Action="Hidden" />
|
|
|
|
<!-- Dispose methods should call SuppressFinalize -->
|
|
<Rule Id="CA1816" Action="Hidden" />
|
|
|
|
<!-- Properties should not return arrays -->
|
|
<Rule Id="CA1819" Action="Hidden" />
|
|
|
|
<!-- Test for empty strings using string length -->
|
|
<Rule Id="CA1820" Action="Hidden" />
|
|
|
|
<!-- Mark members as static -->
|
|
<Rule Id="CA1822" Action="Hidden" />
|
|
|
|
<!-- Avoid unused private fields -->
|
|
<Rule Id="CA1823" Action="Hidden" />
|
|
|
|
<!-- Avoid zero-length array allocations. -->
|
|
<Rule Id="CA1825" Action="Hidden" />
|
|
|
|
<!-- Do not use Count() or LongCount() when Any() can be used -->
|
|
<Rule Id="CA1827" Action="Hidden" />
|
|
|
|
<!-- Use Length/Count property instead of Count() when available -->
|
|
<Rule Id="CA1829" Action="Hidden" />
|
|
|
|
<!-- Dispose objects before losing scope -->
|
|
<Rule Id="CA2000" Action="Hidden" />
|
|
|
|
<!-- Do not lock on objects with weak identity -->
|
|
<Rule Id="CA2002" Action="Hidden" />
|
|
|
|
<!-- Review SQL queries for security vulnerabilities -->
|
|
<Rule Id="CA2100" Action="Hidden" />
|
|
|
|
<!-- Specify marshaling for P/Invoke string arguments -->
|
|
<Rule Id="CA2101" Action="Hidden" />
|
|
|
|
<!-- Instantiate argument exceptions correctly -->
|
|
<Rule Id="CA2208" Action="Hidden" />
|
|
|
|
<!-- Non-constant fields should not be visible -->
|
|
<Rule Id="CA2211" Action="Hidden" />
|
|
|
|
<!-- Disposable fields should be disposed -->
|
|
<Rule Id="CA2213" Action="Hidden" />
|
|
|
|
<!-- Do not call overridable methods in constructors -->
|
|
<Rule Id="CA2214" Action="Hidden" />
|
|
|
|
<!-- Disposable types should declare finalizer -->
|
|
<Rule Id="CA2216" Action="Hidden" />
|
|
|
|
<!-- Operator overloads have named alternates -->
|
|
<Rule Id="CA2225" Action="Hidden" />
|
|
|
|
<!-- Collection properties should be read only -->
|
|
<Rule Id="CA2227" Action="Hidden" />
|
|
|
|
<!-- Implement serialization constructors -->
|
|
<Rule Id="CA2229" Action="Hidden" />
|
|
|
|
<!-- Mark ISerializable types with serializable -->
|
|
<Rule Id="CA2237" Action="Hidden" />
|
|
|
|
<!-- Provide correct arguments to formatting methods -->
|
|
<Rule Id="CA2241" Action="Hidden" />
|
|
|
|
<!-- Attribute string literals should parse correctly -->
|
|
<Rule Id="CA2243" Action="Hidden" />
|
|
|
|
<!-- Insecure DTD processing in XML -->
|
|
<Rule Id="CA3075" Action="Hidden" />
|
|
|
|
<!-- Do Not Use Weak Cryptographic Algorithms -->
|
|
<Rule Id="CA5350" Action="Hidden" />
|
|
|
|
<!-- Do Not Use Broken Cryptographic Algorithms -->
|
|
<Rule Id="CA5351" Action="Hidden" />
|
|
</Rules>
|
|
|
|
<Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers.SpecialRules">
|
|
<!-- XML comment analysis disabled -->
|
|
<Rule Id="SA0001" Action="Hidden" />
|
|
</Rules>
|
|
|
|
<Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers.SpacingRules">
|
|
<!-- Keywords should be spaced correctly -->
|
|
<Rule Id="SA1000" Action="Hidden" />
|
|
|
|
<!-- Commas should be spaced correctly -->
|
|
<Rule Id="SA1001" Action="Hidden" />
|
|
|
|
<!-- Semicolons should be spaced correctly -->
|
|
<Rule Id="SA1002" Action="Hidden" />
|
|
|
|
<!-- Symbols should be spaced correctly -->
|
|
<Rule Id="SA1003" Action="Hidden" />
|
|
|
|
<!-- Documentation lines should begin with single space -->
|
|
<Rule Id="SA1004" Action="Hidden" />
|
|
|
|
<!-- Single line comments should begin with single space -->
|
|
<Rule Id="SA1005" Action="Hidden" />
|
|
|
|
<!-- Preprocessor keywords should not be preceded by space -->
|
|
<Rule Id="SA1006" Action="Hidden" />
|
|
|
|
<!-- Opening parenthesis should be spaced correctly -->
|
|
<Rule Id="SA1008" Action="Hidden" />
|
|
|
|
<!-- Closing parenthesis should be spaced correctly -->
|
|
<Rule Id="SA1009" Action="Hidden" />
|
|
|
|
<!-- Opening square brackets should be spaced correctly -->
|
|
<Rule Id="SA1010" Action="Hidden" />
|
|
|
|
<!-- Closing square brackets should be spaced correctly -->
|
|
<Rule Id="SA1011" Action="Hidden" />
|
|
|
|
<!-- Opening braces should be spaced correctly -->
|
|
<Rule Id="SA1012" Action="Hidden" />
|
|
|
|
<!-- Closing braces should be spaced correctly -->
|
|
<Rule Id="SA1013" Action="Hidden" />
|
|
|
|
<!-- Closing generic brackets should be spaced correctly -->
|
|
<Rule Id="SA1015" Action="Hidden" />
|
|
|
|
<!-- Member access symbols should be spaced correctly -->
|
|
<Rule Id="SA1019" Action="Hidden" />
|
|
|
|
<!-- Negative signs should be spaced correctly -->
|
|
<Rule Id="SA1021" Action="Hidden" />
|
|
|
|
<!-- Dereference and access of symbols should be spaced correctly -->
|
|
<Rule Id="SA1023" Action="Hidden" />
|
|
|
|
<!-- Colons should be spaced correctly -->
|
|
<Rule Id="SA1024" Action="Hidden" />
|
|
|
|
<!-- Code should not contain multiple whitespace in a row -->
|
|
<Rule Id="SA1025" Action="Hidden" />
|
|
|
|
<!-- Code should not contain space after new or stackalloc keyword in implicitly typed array allocation -->
|
|
<Rule Id="SA1026" Action="Hidden" />
|
|
|
|
<!-- Use tabs correctly -->
|
|
<Rule Id="SA1027" Action="Hidden" />
|
|
|
|
<!-- Code should not contain trailing whitespace -->
|
|
<Rule Id="SA1028" Action="Hidden" />
|
|
</Rules>
|
|
|
|
<Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers.ReadabilityRules">
|
|
<!-- Do not prefix calls with base unless local implementation exists -->
|
|
<Rule Id="SA1100" Action="Hidden" />
|
|
|
|
<!-- Prefix local calls with this -->
|
|
<Rule Id="SA1101" Action="Hidden" />
|
|
|
|
<!-- Code should not contain multiple statements on one line -->
|
|
<Rule Id="SA1107" Action="Hidden" />
|
|
|
|
<!-- Block statements should not contain embedded comments -->
|
|
<Rule Id="SA1108" Action="Hidden" />
|
|
|
|
<!-- Opening parenthesis or bracket should be on declaration line -->
|
|
<Rule Id="SA1110" Action="Hidden" />
|
|
|
|
<!-- Closing parenthesis should be on line of last parameter -->
|
|
<Rule Id="SA1111" Action="Hidden" />
|
|
|
|
<!-- Parameter list should follow declaration -->
|
|
<Rule Id="SA1114" Action="Hidden" />
|
|
|
|
<!-- Split parameters should start on line after declaration -->
|
|
<Rule Id="SA1116" Action="Hidden" />
|
|
|
|
<!-- Parameters should be on same line or separate lines -->
|
|
<Rule Id="SA1117" Action="Hidden" />
|
|
|
|
<!-- Parameter should not span multiple lines -->
|
|
<Rule Id="SA1118" Action="Hidden" />
|
|
|
|
<!-- Comments should contain text -->
|
|
<Rule Id="SA1120" Action="Hidden" />
|
|
|
|
<!-- Use built-in type alias -->
|
|
<Rule Id="SA1121" Action="Hidden" />
|
|
|
|
<!-- Use string.Empty for empty strings -->
|
|
<Rule Id="SA1122" Action="Hidden" />
|
|
|
|
<!-- Do not use regions -->
|
|
<Rule Id="SA1124" Action="Hidden" />
|
|
|
|
<!-- Generic type constraints should be on their own line -->
|
|
<Rule Id="SA1127" Action="Hidden" />
|
|
|
|
<!-- Put constructor initializers on their own line -->
|
|
<Rule Id="SA1128" Action="Hidden" />
|
|
|
|
<!-- Do not use default value type constructor -->
|
|
<Rule Id="SA1129" Action="Hidden" />
|
|
|
|
<!-- Use lambda syntax -->
|
|
<Rule Id="SA1130" Action="Hidden" />
|
|
|
|
<!-- Use readable conditions -->
|
|
<Rule Id="SA1131" Action="Hidden" />
|
|
|
|
<!-- Do not combine fields -->
|
|
<Rule Id="SA1132" Action="Hidden" />
|
|
|
|
<!-- Do not combine attributes -->
|
|
<Rule Id="SA1133" Action="Hidden" />
|
|
|
|
<!-- Attributes should not share line -->
|
|
<Rule Id="SA1134" Action="Hidden" />
|
|
|
|
<!-- Enum values should be on separate lines -->
|
|
<Rule Id="SA1136" Action="Hidden" />
|
|
|
|
<!-- Elements should have the same indentation -->
|
|
<Rule Id="SA1137" Action="Hidden" />
|
|
</Rules>
|
|
|
|
<Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers.OrderingRules">
|
|
<!-- Elements should appear in the correct order -->
|
|
<Rule Id="SA1201" Action="Hidden" />
|
|
|
|
<!-- Elements should be ordered by access -->
|
|
<Rule Id="SA1202" Action="Hidden" />
|
|
|
|
<!-- Constants should appear before fields -->
|
|
<Rule Id="SA1203" Action="Hidden" />
|
|
|
|
<!-- Static elements should appear before instance elements -->
|
|
<Rule Id="SA1204" Action="Hidden" />
|
|
|
|
<!-- Partial elements should declare access -->
|
|
<Rule Id="SA1205" Action="Hidden" />
|
|
|
|
<!-- System using directives should be placed before other using directives -->
|
|
<Rule Id="SA1208" Action="Hidden" />
|
|
|
|
<!-- Using directives should be ordered alphabetically by namespace -->
|
|
<Rule Id="SA1210" Action="Hidden" />
|
|
|
|
<!-- Using alias directives should be ordered alphabetically by alias name -->
|
|
<Rule Id="SA1211" Action="Hidden" />
|
|
|
|
<!-- Property accessors should follow order -->
|
|
<Rule Id="SA1212" Action="Hidden" />
|
|
|
|
<!-- Readonly fields should appear before non-readonly fields -->
|
|
<Rule Id="SA1214" Action="Hidden" />
|
|
</Rules>
|
|
|
|
<Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers.NamingRules">
|
|
<!-- Element should begin with upper-case letter -->
|
|
<Rule Id="SA1300" Action="Hidden" />
|
|
|
|
<!-- Interface names should begin with I -->
|
|
<Rule Id="SA1302" Action="Hidden" />
|
|
|
|
<!-- Const field names should begin with upper-case letter -->
|
|
<Rule Id="SA1303" Action="Hidden" />
|
|
|
|
<!-- Non-private readonly fields should begin with upper-case letter -->
|
|
<Rule Id="SA1304" Action="Hidden" />
|
|
|
|
<!-- Field names should begin with lower-case letter -->
|
|
<Rule Id="SA1306" Action="Hidden" />
|
|
|
|
<!-- Accessible fields should begin with upper-case letter -->
|
|
<Rule Id="SA1307" Action="Hidden" />
|
|
|
|
<!-- Variable names should not be prefixed -->
|
|
<Rule Id="SA1308" Action="Hidden" />
|
|
|
|
<!-- Field names should not begin with underscore -->
|
|
<Rule Id="SA1309" Action="Hidden" />
|
|
|
|
<!-- Field names should not contain underscore -->
|
|
<Rule Id="SA1310" Action="Hidden" />
|
|
|
|
<!-- Static readonly fields should begin with upper-case letter -->
|
|
<Rule Id="SA1311" Action="Hidden" />
|
|
|
|
<!-- Variable names should begin with lower-case letter -->
|
|
<Rule Id="SA1312" Action="Hidden" />
|
|
|
|
<!-- Parameter names should begin with lower-case letter -->
|
|
<Rule Id="SA1313" Action="Hidden" />
|
|
|
|
<!-- Type parameter names should begin with T -->
|
|
<Rule Id="SA1314" Action="Hidden" />
|
|
</Rules>
|
|
|
|
<Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers.MaintainabilityRules">
|
|
<!-- I put this rule in this section because the defaults put it here. -->
|
|
<!-- Statement should not use unnecessary parenthesis -->
|
|
<Rule Id="SA1119" Action="Hidden" />
|
|
|
|
<!-- Access modifier should be declared -->
|
|
<Rule Id="SA1400" Action="Hidden" />
|
|
|
|
<!-- Fields should be private -->
|
|
<Rule Id="SA1401" Action="Hidden" />
|
|
|
|
<!-- File may only contain a single type -->
|
|
<Rule Id="SA1402" Action="Hidden" />
|
|
|
|
<!-- Debug.Assert should provide message text -->
|
|
<Rule Id="SA1405" Action="Hidden" />
|
|
|
|
<!-- Arithmetic expressions should declare precedence -->
|
|
<Rule Id="SA1407" Action="Hidden" />
|
|
|
|
<!-- Conditional expressions should declare precedence -->
|
|
<Rule Id="SA1408" Action="Hidden" />
|
|
|
|
<!-- Remove delegate parenthesis when possible -->
|
|
<Rule Id="SA1410" Action="Hidden" />
|
|
|
|
<!-- Use trailing comma in multi-line initializers -->
|
|
<Rule Id="SA1413" Action="Hidden" />
|
|
</Rules>
|
|
|
|
<Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers.LayoutRules">
|
|
<!-- Braces for multi-line statements should not share line -->
|
|
<Rule Id="SA1500" Action="Hidden" />
|
|
|
|
<!-- Statement should not be on a single line -->
|
|
<Rule Id="SA1501" Action="Hidden" />
|
|
|
|
<!-- Element should not be on a single line -->
|
|
<Rule Id="SA1502" Action="Hidden" />
|
|
|
|
<!-- Braces should not be omitted -->
|
|
<Rule Id="SA1503" Action="Hidden" />
|
|
|
|
<!-- Opening braces should not be followed by blank line -->
|
|
<Rule Id="SA1505" Action="Hidden" />
|
|
|
|
<!-- Code should not contain multiple blank lines in a row -->
|
|
<Rule Id="SA1507" Action="Hidden" />
|
|
|
|
<!-- Closing braces should not be preceded by blank line -->
|
|
<Rule Id="SA1508" Action="Hidden" />
|
|
|
|
<!-- Opening braces should not be preceded by blank line -->
|
|
<Rule Id="SA1509" Action="Hidden" />
|
|
|
|
<!-- Chained statement blocks should not be preceded by blank line -->
|
|
<Rule Id="SA1510" Action="Hidden" />
|
|
|
|
<!-- Single-line comments should not be followed by blank line -->
|
|
<Rule Id="SA1512" Action="Hidden" />
|
|
|
|
<!-- Closing brace should be followed by blank line -->
|
|
<Rule Id="SA1513" Action="Hidden" />
|
|
|
|
<!-- Element documentation header should be preceded by blank line -->
|
|
<Rule Id="SA1514" Action="Hidden" />
|
|
|
|
<!-- Single-line comment should be preceded by blank line -->
|
|
<Rule Id="SA1515" Action="Hidden" />
|
|
|
|
<!-- Elements should be separated by blank line -->
|
|
<Rule Id="SA1516" Action="Hidden" />
|
|
|
|
<!-- Code should not contain blank lines at start of file -->
|
|
<Rule Id="SA1517" Action="Hidden" />
|
|
|
|
<!-- Use line endings correctly at end of file -->
|
|
<Rule Id="SA1518" Action="Hidden" />
|
|
|
|
<!-- Braces should not be omitted from multi-line child statement -->
|
|
<Rule Id="SA1519" Action="Hidden" />
|
|
|
|
<!-- Use braces consistently -->
|
|
<Rule Id="SA1520" Action="Hidden" />
|
|
</Rules>
|
|
|
|
<Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers.DocumentationRules">
|
|
<!-- Element parameter documentation should match element parameters -->
|
|
<Rule Id="SA1612" Action="Hidden" />
|
|
|
|
<!-- Property summary documentation should match accessors -->
|
|
<Rule Id="SA1623" Action="Hidden" />
|
|
|
|
<!-- Single-line comments should not use documentation style slashes -->
|
|
<Rule Id="SA1626" Action="Hidden" />
|
|
|
|
<!-- Documentation text should not be empty -->
|
|
<Rule Id="SA1627" Action="Hidden" />
|
|
|
|
<!-- Documentation text should end with a period -->
|
|
<Rule Id="SA1629" Action="Hidden" />
|
|
|
|
<!-- File should have header -->
|
|
<Rule Id="SA1633" Action="Hidden" />
|
|
|
|
<!-- Constructor summary documentation should begin with standard text -->
|
|
<Rule Id="SA1642" Action="Hidden" />
|
|
|
|
<!-- File name should match first type name -->
|
|
<Rule Id="SA1649" Action="Hidden" />
|
|
</Rules>
|
|
</RuleSet>
|