Releases: DotNetAnalyzers/StyleCopAnalyzers
1.0.0 Beta 14
Feature and Bug Fix Update
Summary
- New rules
- Readability rules: SA1131
- Documentation rules: SA1649
- New code fixes
- Readability rules: SA1131
- Documentation rules: SA1637, SA1638, SA1640, SA1641, SA1649
- Features
- Other: Automatic recognition of stylecop.json after it is added to the project
- Bug fixes
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 | ✔ |
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 | ... |
1.0.0 Beta 13
Feature and Bug Fix Update
Summary
- New rules
- Readability rules: SA1117, SA1129, SA1130, SA1132
- Naming rules: SA1305
- New code fixes
- Readability rules: SA1128, SA1129, SA1132
- Ordering rules: SA1201, SA1202, SA1204
- Documentation rules: SA1634
- Bug fixes
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 | ✔¹ |
SA1132 ³ | Do not combine fields | ✔ |
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 documen... |
1.0.0 Beta 12
Bug Fix Update
Summary
- Bug fixes
- Spacing rules: SA1002 (#403, #1426), SA1009 (#684), SA1023 (#1457), SA1027 (#1246), SA1028 (#796)
- Readability rules: SA1127 (#1476)
- Maintainability rules: SA1400 (#591)
- Layout rules: SA1506 (#1456), SA1516 (#737)
- Documentation rules: File headers (#1356, #1432)
- Other: Missing analyzer reference (#1345), assembly versioning (#1391), compliance (#1483)
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 | ✔ |
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 | |
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 | ✔ |
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 | ✔ |
SA1633 | File must have header | ✔ |
SA1634 | File header must show copyright | |
SA1635 | File... |
1.0.0 Beta 11
Feature and Bug Fix Update
Summary
- New code fixes
- Documentation rules: SA1626, SA1635
- Bug fixes
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 | ✔ |
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 | |
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 | ✔ |
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 | ✔ |
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 ... |
1.0.0 Beta 10
Feature and Bug Fix Update
Summary
- New rules
- Readability rules: SA1127, SA1128
- New code fixes
- Readability rules: SA1106, SA1127
- Ordering rules: SA1200, SA1208, SA1209, SA1210, SA1211, SA1212, SA1213, SA1216, SA1217
- Documentation rules: SA1600, SA1633, SA1636
- Other: CS1591
- Bug fixes
- Features
- Tremendous performance improvements for many code fixes
- Configuration for documentation requirements via stylecop.json (documentation)
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 | ✔ |
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 | |
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 | ✔ |
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 p... |
1.0.0 Beta 9
Feature and Bug Fix Update
Summary
- New rules
- Naming rules: SA1312, SA1313
- Documentation rules: SA1636, SA1641
- New code fixes
- Ordering rules: SA1203, SA1214, SA1215
- Naming rules: SA1300, SA1303
- Maintainability rules: SA1404
- Other: Add settings file
- Bug fixes
- Spacing rules: SA1004 (#1238), SA1018 (#1256), SA1025 (#1245), SA1028 (#1313)
- Readability rules: SA1100 (#1247), SA1106 (#1254), SA1122 (#1281)
- Naming rules: SA1307 (#1306)
- Maintainability rules: SA1119 (#1284), SA1404 (#1253), SA1412 (#1240)
- Layout rules: SA1513 (#1301)
- Documentation rules: SA1609 (#1262), SA1642 (#1318)
- Removed rules
- Documentation rules: SA1603 (#1291)
- Features
- Configuration via stylecop.json (documentation)
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 | ✔ |
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 | ✔ |
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 | ✔ |
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... |
1.0.0 Beta 8
Feature and Bug Fix Update
Summary
- New code fixes
- Readability rules: SA1116
- Bug fixes
- Performance improvements (#1231)
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 | 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 | |
SA1116 | Split parameters must start on line after declaration | ✔ |
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 | ✔ |
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 | |
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 | ✔ ... |
1.0.0 Beta 7
Feature and Bug Fix Update
Summary
- New diagnostics
- Readability rules: SA1116
- New code fixes
- Readability rules: SA1110, SA1111, SA1112, SA1113
- Layout rules: SA1504
- Bug fixes
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 | 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 | |
SA1116 | Split parameters must start on line after declaration | |
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 | ✔ |
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 | |
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 | ... |
1.0.0 Beta 6
Bug Fix Update
Summary
- Bug fixes
- Spacing rules: SA1009 (#1187), SA1013 (#1191)
- Readability rules: SA1120 (#1170, #1171)
- Ordering rules: SA1202 (#1179), SA1208/SA1209/SA1210/SA1211/SA1216/SA1217 (#1161)
- Layout rules: SA1501 (#1172, #1189), SA1503 (#1184, #1185, #1186), SA1513 (#1173)
- Documentation rules: SA1601 (#1190), SA1602 (#1196)
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 | 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 | ✔ |
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 | |
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... |
1.0.0 Beta 5
Minor Feature and Bug Fix Update
Summary
- New diagnostics
- Maintainability rules: SA1412
- New code fixes
- Maintainability rules: SA1412
- Bug fixes
- Performance improvements
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 | ✔ |
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 | |
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 ... |