Skip to content

1.0.0 Beta 15

Pre-release
Pre-release
Compare
Choose a tag to compare
@sharwell sharwell released this 25 Oct 22:06
· 2505 commits to master since this release

Feature and Bug Fix Update

Summary

  • New rules
    • Readability rules: SX1101
    • Documentation rules: SA1627
  • New code fixes
    • Readability rules: SX1101
  • Features
    • Other: Performance improvements
  • Bug fixes
    • Performance: Fix build performance regression (#1618)
    • Multiple: Fix failure to report several spacing and readability rules when building a project (#1659)
    • Readability rules: SA1114/SA1115 (#1623)

Binaries

Analyzers

The following analyzers are included in this release (all with Warning severity by default).

ID Title Code Fix
SA1000 Keywords must be spaced correctly
SA1001 Commas must be spaced correctly
SA1002 Semicolons must be spaced correctly
SA1003 Symbols must be spaced correctly
SA1004 Documentation lines must begin with single space
SA1005 Single line comments must begin with single space
SA1006 Preprocessor keywords must not be preceded by space
SA1007 Operator keyword must be followed by space
SA1008 Opening parenthesis must be spaced correctly
SA1009 Closing parenthesis must be spaced correctly
SA1010 Opening square brackets must be spaced correctly
SA1011 Closing square brackets must be spaced correctly
SA1012 Opening curly brackets must be spaced correctly
SA1013 Closing curly brackets must be spaced correctly
SA1014 Opening generic brackets must be spaced correctly
SA1015 Closing generic brackets must be spaced correctly
SA1016 Opening attribute brackets must be spaced correctly
SA1017 Closing attribute brackets must be spaced correctly
SA1018 Nullable type symbols must be spaced correctly
SA1019 Member access symbols must be spaced correctly
SA1020 Increment decrement symbols must be spaced correctly
SA1021 Negative signs must be spaced correctly
SA1022 Positive signs must be spaced correctly
SA1023 Dereference and access of symbols must be spaced correctly
SA1024 Colons Must Be Spaced Correctly
SA1025 Code must not contain multiple whitespace in a row
SA1026 Code must not contain space after new keyword in implicitly typed array allocation
SA1027 Tabs must not be used
SA1028 ³ Code must not contain trailing whitespace
SA1100 Do not prefix calls with base unless local implementation exists
SA1101 Prefix local calls with this
SA1102 Query clause must follow previous clause
SA1103 Query clauses must be on separate lines or all on one line
SA1104 Query clause must begin on new line when previous clause spans multiple lines
SA1105 Query clauses spanning multiple lines must begin on own line
SA1106 Code must not contain empty statements
SA1107 Code must not contain multiple statements on one line
SA1108 Block statements must not contain embedded comments
SA1110 Opening parenthesis or bracket must be on declaration line
SA1111 Closing parenthesis must be on line of last parameter
SA1112 Closing parenthesis must be on line of opening parenthesis
SA1113 Comma must be on the same line as previous parameter
SA1114 Parameter list must follow declaration
SA1115 Parameter must follow comma
SA1116 Split parameters must start on line after declaration
SA1117 Parameters must be on same line or separate lines
SA1118 Parameter must not span multiple lines
SA1119 Statement must not use unnecessary parenthesis
SA1120 Comments must contain text
SA1121 Use built-in type alias
SA1122 Use string.Empty for empty strings
SA1123 Do not place regions within elements
SA1124 Do not use regions
SA1125 Use shorthand for nullable types ✔¹
SA1127 ³ Generic type constraints must be on their own line
SA1128 ³ Put constructor initializers on their own line
SA1129 ³ Do not use default value type constructor
SA1130 ³ Use lambda syntax ✔¹
SA1131 ³ Use readable conditions
SA1132 ³ Do not combine fields
SX1101 ² ³ Do not prefix local calls with 'this.'
SA1200 Using directives must be placed within namespace
SA1201 Elements must appear in the correct order
SA1202 Elements must be ordered by access
SA1203 Constants must appear before fields
SA1204 Static elements must appear before instance elements
SA1205 Partial elements must declare access
SA1206 Declaration keywords must follow order
SA1207 Protected must come before internal
SA1208 System using directives must be placed before other using directives
SA1209 Using alias directives must be placed after other using directives
SA1210 Using directives must be ordered alphabetically by namespace
SA1211 Using alias directives must be ordered alphabetically by alias name
SA1212 Property accessors must follow order
SA1213 Event accessors must follow order
SA1214 Static readonly elements must appear before static non-readonly elements
SA1215 Instance readonly elements must appear before instance non-readonly elements
SA1216 ³ Using static directives must be placed after other using directives
SA1217 ³ Using static directives must be ordered alphabetically
SA1300 Element must begin with upper-case letter
SA1302 Interface names must begin with I
SA1303 Const field names must begin with upper-case letter
SA1304 Non-private readonly fields must begin with upper-case letter
SA1305 ⁴ Field names must not use Hungarian notation
SA1306 Field names must begin with lower-case letter
SA1307 Accessible fields must begin with upper-case letter
SA1308 Variable names must not be prefixed
SA1309 Field names must not begin with underscore
SA1310 Field names must not contain underscore
SA1311 Static readonly fields must begin with upper-case letter
SA1312 ³ Variable names must begin with lower case letter
SA1313 ³ Parameter names must begin with lower case letter
SX1309 ² ³ Field names must begin with underscore
SX1309S ² ³ Static field names must begin with underscore
SA1400 Access modifier must be declared
SA1401 Fields must be private
SA1402 File may only contain a single class
SA1403 File may only contain a single namespace
SA1404 Code analysis suppression must have justification
SA1405 Debug.Assert must provide message text
SA1406 Debug.Fail must provide message text
SA1407 Arithmetic expressions must declare precedence
SA1408 Conditional expressions must declare precedence
SA1410 Remove delegate parenthesis when possible
SA1411 Attribute constructor must not use unnecessary parenthesis
SA1412 ³ ⁴ Store files as UTF-8
SA1500 Curly brackets for multi-line statements must not share line
SA1501 Statement must not be on a single line
SA1502 Element must not be on a single line
SA1503 Curly brackets must not be omitted
SA1504 All accessors must be single-line or multi-line
SA1505 Opening curly brackets must not be followed by blank line
SA1506 Element documentation headers must not be followed by blank line
SA1507 Code must not contain multiple blank lines in a row
SA1508 Closing curly brackets must not be preceded by blank line
SA1509 Opening curly brackets must not be preceded by blank line
SA1510 Chained statement blocks must not be preceded by blank line
SA1511 While-do footer must not be preceded by blank line
SA1512 Single-line comments must not be followed by blank line
SA1513 Closing curly bracket must be followed by blank line
SA1514 Element documentation header must be preceded by blank line
SA1515 Single-line comment must be preceded by blank line
SA1516 Elements must be separated by blank line
SA1517 Code must not contain blank lines at start of file
SA1518 Code must not contain blank lines at end of file
SA1519 ³ Curly brackets must not be omitted from multi-line child statement
SA1520 ³ Use curly brackets consistently
SA1600 Elements must be documented
SA1601 Partial elements must be documented
SA1602 Enumeration items must be documented
SA1604 Element documentation must have summary
SA1605 Partial element documentation must have summary
SA1606 Element documentation must have summary text
SA1607 Partial element documentation must have summary text
SA1608 Element documentation must not have default summary
SA1609 ⁴ Property documentation must have value
SA1610 Property documentation must have value text
SA1611 Element parameters must be documented
SA1612 Element parameter documentation must match element parameters
SA1613 Element parameter documentation must declare parameter name
SA1614 Element parameter documentation must have text
SA1615 Element return value must be documented
SA1616 Element return value documentation must have text
SA1617 Void return value must not be documented
SA1618 Generic type parameters must be documented
SA1619 Generic type parameters must be documented partial class
SA1620 Generic type parameter documentation must match type parameters
SA1621 Generic type parameter documentation must declare parameter name
SA1622 Generic type parameter documentation must have text
SA1626 Single-line comments must not use documentation style slashes
SA1627 Documentation text must not be empty
SA1633 File must have header
SA1634 File header must show copyright
SA1635 File header must have copyright text
SA1636 File header copyright text must match
SA1637 File header must contain file name
SA1638 File header file name documentation must match file name
SA1639 ⁴ File header must have summary
SA1640 File header must have valid company text
SA1641 File header company name text must match
SA1642 Constructor summary documentation must begin with standard text
SA1643 Destructor summary documentation must begin with standard text
SA1648 inheritdoc must be used with inheriting class
SA1649 File name must match first type name
SA1651 ³ Do not use placeholder elements
SA1652 ³ Enable XML documentation output

Notes

¹ This code fix is provided by Visual Studio
² This "alternative" rule is not enabled by default
³ This rule is new for StyleCopAnalyzers, and isn't present in the original StyleCop
⁴ This rule is not enabled by default

Acknowledgements

Thank you goes to all of the following users, who contributed feedback, bug reports, code submissions, testing, and reviews which helped in this release. In alphabetical order by username. This list does not include people who contacted us through other channels, but your feedback is no less valuable so we thank you as well.