Releases: DotNetAnalyzers/StyleCopAnalyzers
1.0.0 Beta 4
Minor Feature and Bug Fix Update
Summary
- New diagnostics
- Spacing rules: SA1023
- Ordering rules: SA1202, SA1203, SA1204, SA1215
- New code fixes
- Spacing rules: SA1023
- Bug fixes
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 | QueryClauseMustFollowPreviousClause | ✔ |
SA1103 | QueryClausesMustBeOnSeparateLinesOrAllOnOneLine | ✔ |
SA1104 | QueryClauseMustBeginOnNewLineWhenPreviousClauseSpansMultipleLines | ✔ |
SA1105 | QueryClausesSpanningMultipleLinesMustBeginOnOwnLine | ✔ |
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 | |
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 | ✔¹ |
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 | |
SA1301 | Element must begin with lower-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 | ✔ |
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 | ✔ |
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 | ✔ |
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 | |
SA1603 | Documentation must contain valid XML | |
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 | |
SA1633 | File must have header | |
SA1634 | File header must show copyright | |
SA1635 | File header must have copyright text | |
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 | |
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 | |
SA1651 ³ | Do not use placeholder elements | ✔ |
... |
1.0.0 Beta 3
Bug Fix Update
Summary
- New code fix
- Readability rules: SA1120
- Bug fixes
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 | ✔ |
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 | QueryClauseMustFollowPreviousClause | ✔ |
SA1103 | QueryClausesMustBeOnSeparateLinesOrAllOnOneLine | ✔ |
SA1104 | QueryClauseMustBeginOnNewLineWhenPreviousClauseSpansMultipleLines | ✔ |
SA1105 | QueryClausesSpanningMultipleLinesMustBeginOnOwnLine | ✔ |
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 | |
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 | ✔¹ |
SA1200 | Using directives must be placed within namespace | |
SA1201 | Elements must appear in the correct order | |
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 | |
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 | |
SA1301 | Element must begin with lower-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 | ✔ |
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 | ✔ |
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 | ✔ |
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 | |
SA1603 | Documentation must contain valid XML | |
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 | |
SA1633 | File must have header | |
SA1634 | File header must show copyright | |
SA1635 | File header must have copyright text | |
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 | |
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 | |
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
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...
1.0.0 Beta 2
Analyzers and Code Fixes Update
Summary
- New diagnostics
- Spacing rules: SA1011, SA1012, SA1013, SA1014, SA1015, SA1019
- Ordering rules: SA1207
- Documentation rules: SA1648, SA1652
- New code fixes
- Spacing rules: SA1004, SA1009, SA1011, SA1012, SA1013, SA1014, SA1015, SA1019, SA1020, SA1025
- Ordering rules: SA1207
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 | ✔ |
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 | QueryClauseMustFollowPreviousClause | ✔ |
SA1103 | QueryClausesMustBeOnSeparateLinesOrAllOnOneLine | ✔ |
SA1104 | QueryClauseMustBeginOnNewLineWhenPreviousClauseSpansMultipleLines | ✔ |
SA1105 | QueryClausesSpanningMultipleLinesMustBeginOnOwnLine | ✔ |
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 | |
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 | ✔¹ |
SA1200 | Using directives must be placed within namespace | |
SA1201 | Elements must appear in the correct order | |
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 | |
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 | |
SA1301 | Element must begin with lower-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 | ✔ |
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 | ✔ |
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 | ✔ |
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 | |
SA1603 | Documentation must contain valid XML | |
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 | |
SA1633 | File must have header | |
SA1634 | File header must show copyright | |
SA1635 | File header must have copyright text | |
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 | |
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 | |
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
Acknowledgements
Thank you goes to all of the following users, who contributed ...
1.0.0 Beta 1
Update for Visual Studio 2015 RTM
Summary
- Support Visual Studio 2015 RTM 🎉
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 | ✔ |
SA1016 | Opening attribute brackets must be spaced correctly | ✔ |
SA1017 | Closing attribute brackets must be spaced correctly | ✔ |
SA1018 | Nullable type 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 | ✔ |
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 | QueryClauseMustFollowPreviousClause | ✔ |
SA1103 | QueryClausesMustBeOnSeparateLinesOrAllOnOneLine | ✔ |
SA1104 | QueryClauseMustBeginOnNewLineWhenPreviousClauseSpansMultipleLines | ✔ |
SA1105 | QueryClausesSpanningMultipleLinesMustBeginOnOwnLine | ✔ |
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 | |
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 | ✔¹ |
SA1200 | Using directives must be placed within namespace | |
SA1201 | Elements must appear in the correct order | |
SA1205 | Partial elements must declare access | ✔ |
SA1206 | Declaration keywords must follow order | |
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 | |
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 | |
SA1301 | Element must begin with lower-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 | ✔ |
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 | ✔ |
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 | ✔ |
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 | |
SA1603 | Documentation must contain valid XML | |
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 | |
SA1633 | File must have header | |
SA1634 | File header must show copyright | |
SA1635 | File header must have copyright text | |
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 | |
SA1642 | Constructor summary documentation must begin with standard text | ✔ |
SA1643 | Destructor summary documentation must begin with standard text | ✔ |
SA1651 ³ | Do not use placeholder elements | ✔ |
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
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.
1.0.0 Alpha 11
API and Bug Fix Update
Summary
- New diagnostics
- Bug fixes
- Performance improvements
- New contributors
📝 This is the final release which supports Visual Studio 2015 RC. Moving forward we will support only Visual Studio 2015 RTM.
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 | ✔ |
SA1016 | Opening attribute brackets must be spaced correctly | ✔ |
SA1017 | Closing attribute brackets must be spaced correctly | ✔ |
SA1018 | Nullable type 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 | ✔ |
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 | QueryClauseMustFollowPreviousClause | ✔ |
SA1103 | QueryClausesMustBeOnSeparateLinesOrAllOnOneLine | ✔ |
SA1104 | QueryClauseMustBeginOnNewLineWhenPreviousClauseSpansMultipleLines | ✔ |
SA1105 | QueryClausesSpanningMultipleLinesMustBeginOnOwnLine | ✔ |
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 | |
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 | ✔¹ |
SA1200 | Using directives must be placed within namespace | |
SA1201 | Elements must appear in the correct order | |
SA1205 | Partial elements must declare access | ✔ |
SA1206 | Declaration keywords must follow order | |
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 | |
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 | |
SA1301 | Element must begin with lower-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 | ✔ |
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 | ✔ |
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 | ✔ |
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 | |
SA1603 | Documentation must contain valid XML | |
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 | |
SA1633 | File must have header | |
SA1634 | File header must show copyright | |
SA1635 | File header must have copyright text | |
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 | |
SA1642 | Constructor summary documentation must begin with standard text | ✔ |
SA1643 | Destructor summary documentation must begin with standard text | ✔ |
SA1651 ³ | Do not use placeholder elements | ✔ |
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
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.
1.0.0 Alpha 10
1.0.0-alpha010 Update version numbers for release 1.0.0-alpha010
1.0.0 Alpha 9
1.0.0-alpha009 Update version numbers for release 1.0.0-alpha009
1.0.0 Alpha 8
API and Bug-fix Update
1.0.0 Alpha 7
API and Bug-fix Update
- Features (new diagnostics)
- SA1027 (TabsMustNotBeUsed)
- SA1028 (CodeMustNotContainTrailingWhitespace)
- SA1108 (BlockStatementsMustNotContainEmbeddedComments)
- SA1118 (ParameterMustNotSpanMultipleLines)
- SA1208 (SystemUsingDirectivesMustBePlacedBeforeOtherUsingDirectives)
- SA1216 (UsingStaticDirectivesMustBePlacedAfterOtherUsingDirectives)
- SA1217 (UsingStaticDirectivesMustBeOrderedAlphabetically)
- SA1501 (StatementMustNotBeOnSingleLine)
- SA1502 (ElementMustNotBeOnSingleLine)
- SA1512 (SingleLineCommentsMustNotBeFollowedByBlankLine)
- SA1515 (SingleLineCommentsMustNotBePrecededByBlankLine)
- SA1519 (CurlyBrackets)
- SA1520 (UseCurlyBracketsConsistently)
- SA1651 (DoNotUsePlaceholderElements)
- Features (new code fixes for existing rules)
- SA1500 (CurlyBracketsForMultiLineStatementsMustNotShareLine)
- SA1609 (PropertyDocumentationMustHaveValue)
- SA1610 (PropertyDocumentationMustHaveValueText)
- SA1617 (VoidReturnValueMustNotBeDocumented)
- Features (alternative rules)
- SX1309 (FieldNamesMustBeginWithUnderscore)
- SX1309S (StaticFieldNamesMustBeginWithUnderscore)
- Bug fixes
- Fix application of
[ExportCodeFixProvider]
(#803) - Enable analysis for several files previously excluded for their name alone (#848, #849, #850, #851, #854)
- Allow
<autogenerated
as a trigger in a file header to skip file analysis (#833) - SA1005 (SingleLineCommentsMustBeginWithSingleSpace) (#715)
- SA1205 (PartialElementsMustDeclareAccess) (#792)
- SA1300 (ElementMustBeginWithUpperCaseLetter) (#771)
- SA1304 (NonPrivateReadonlyFieldsMustBeginWithUpperCaseLetter) (#574)
- SA1402 (FileMayOnlyContainASingleClass) (#773)
- SA1403 (FileMayOnlyContainASingleNamespace) (#774)
- SA1503 (CurlyBracketsMustNotBeOmitted) (#859)
- SA1509 (OpeningCurlyBracketsMustNotBePrecededByBlankLine) (#775)
- SA1513 (ClosingCurlyBracketMustBeFollowedByBlankLine) (#784)
- SA1642 code fix (#780)
- Fix application of
Analyzers
The following analyzers are enabled by default 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 | ✔ |
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 | ✔ |
SA1021 | Negative signs must be spaced correctly | ✔ |
SA1022 | Positive signs must be spaced correctly | ✔ |
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 | |
SA1106 | Code must not contain empty statements | |
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 | |
SA1118 | Parameter must not span multiple lines | |
SA1119 | Statement must not use unnecessary parenthesis | ✔ |
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 | |
SA1201 | Elements must appear in the correct order | |
SA1205 | Partial elements must declare access | ✔ |
SA1212 | Property accessors must follow order | |
SA1213 | Event accessors must follow order | |
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 | |
SA1301 | Element must begin with lower-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 | ✔ |
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 | ✔ |
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 | ✔ |
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 | |
SA1507 | Code must not contain multiple blank lines in a row | ✔ |
SA1509 | Opening curly brackets must not be preceded by blank line | ✔ |
SA1513 | Closing curly bracket must be followed 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 | ✔ |
SA1600 | Elements must be documented | |
SA1601 | Partial elements must be documented | |
SA1602 | Enumeration items must be documented | |
SA1603 | Documentation must contain valid XML | |
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 | ✔ |
SA1626 | Single-line comments must not use documentation style slashes | |
SA1642 | Constructor summary documentation must begin with standard text | ✔ |
SA1643 | Destructor summary documentation must begin with standard text | ✔ |
SA1651 | Do not use placeholder elements | ✔ |
Alternative Analyzers
The following analyzers are provided to implement "alternate configurations" to some of the reference rules above.
ID | Title | Code Fix |
---|---|---|
SX1309 | Field names must begin with underscore | ✔ |
SX1309S | Static field names must begin with underscore | ✔ |
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.
1.0.0 Alpha 6
API and Bug-fix Update
- General
- Update to the "RC2" release of Roslyn, which matches Visual Studio 2015 RC: #712
- Features
- Implemented SA1612 (ElementParameterDocumentationMustMatchElementParameters): #132
- Bug fixes
Analyzers
The following analyzers are enabled by default 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 | ✔ |
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 | ✔ |
SA1021 | Negative signs must be spaced correctly | ✔ |
SA1022 | Positive signs must be spaced correctly | ✔ |
SA1100 | Do not prefix calls with base unless local implementation exists | ✔ |
SA1101 | Prefix local calls with this | ✔ |
SA1102 | Query clause must follow previous clause | |
SA1106 | Code must not contain empty statements | |
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 | |
SA1119 | Statement must not use unnecessary parenthesis | ✔ |
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 | |
SA1201 | Elements must appear in the correct order | |
SA1205 | Partial elements must declare access | ✔ |
SA1212 | Property accessors must follow order | |
SA1213 | Event accessors must follow order | |
SA1300 | Element must begin with upper-case letter | |
SA1301 | Element must begin with lower-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 | ✔ |
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 | ✔ |
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 | ✔ |
SA1500 | Curly brackets for multi-line statements must not share line | |
SA1503 | Curly brackets must not be omitted | ✔ |
SA1504 | All accessors must be single-line or multi-line | |
SA1507 | Code must not contain multiple blank lines in a row | ✔ |
SA1509 | Opening curly brackets must not be preceded by blank line | ✔ |
SA1513 | Closing curly bracket must be followed 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 | ✔ |
SA1600 | Elements must be documented | |
SA1601 | Partial elements must be documented | |
SA1602 | Enumeration items must be documented | |
SA1603 | Documentation must contain valid XML | |
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 (new) | 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 | |
SA1626 | Single-line comments must not use documentation style slashes | |
SA1642 | Constructor summary documentation must begin with standard text | ✔ |
SA1643 | Destructor summary documentation must begin with standard text | ✔ |
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.