Skip to content

Releases: DotNetAnalyzers/StyleCopAnalyzers

1.0.2

29 May 19:30
Compare
Choose a tag to compare

Compatibility update for 1.0.0

  • Fixes errors when using stylecop.json with .NET Core

See the release notes for 1.0.0 for general information about the 1.0.0 releases.

Acknowledgements

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

1.0.1

26 Mar 14:05
Compare
Choose a tag to compare
This release was withdrawn due to #2331

Compatibility update for 1.0.0

  • Fixes errors when using stylecop.json with .NET Core

See the release notes for 1.0.0 for general information about the 1.0.0 releases.

Acknowledgements

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

1.1.0 Beta 1

23 Nov 13:59
Compare
Choose a tag to compare
1.1.0 Beta 1 Pre-release
Pre-release

Beta Release

Summary

  • New rules
  • Renumbered rules
    • SA1652 → SA0001 (#2030)
  • Removed rules
  • New code fixes
    • SA1206: DeclarationKeywordsMustFollowOrder (#1003)
    • SA1130: UseLambdaSyntax (#1520)
  • New configuration
    • SA1027 supports hard tabs via configuration (#2037)
    • Added {fileName} intrinsic variable for configuring file headers (#2110)
    • Added allowConsecutiveUsings option to configure SA1519
    • Added topLevelTypes configuration for SA1402 (#1756)
    • Added documentationCulture configuration for documentation text (#1143)
    • Added blankLinesBetweenUsingGroups (#1787)
  • Bug fixes
  • Other
    • Updated to Roslyn 1.2 (#2102)
    • File headers support "decoration" lines (#2086)
    • Improved semantic code fixes for SA1129 (#1972, #1973)
    • Numerous performance improvements
    • Added /apply option to StyleCopTester (#2017)
    • Move indentation options to stylecop.json (#2039)

Upgrade notices

Upgrading from StyleCop Classic

📝 This section applies to users upgrading from StyleCop Classic to StyleCop Analyzers.

➡️ We now have a list of known changes in behavior relative to StyleCop Classic.

Upgrading from StyleCop Analyzers 1.0.0

⚠️ StyleCop Analyzers 1.1.0 depends on Roslyn 1.2. Users working with Visual Studio 2015 will need to install Update 2 or newer to get this version.

Binaries

Analyzers

Table of Analyzers

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

ID Title Code Fix
SA0001 ³ All diagnostics of XML documentation comments has been disabled due to the current project configuration
SA0002 ³ The stylecop.json settings file could not be loaded due to a deserialization error
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 braces must be spaced correctly
SA1013 Closing braces 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
SA1133 ³ Do not combine attributes
SA1134 ³ Attributes must not share line
SA1136 ³ Multiple enum values are placed on the same line of code
SA1137 ³ Elements should have the same indentation
SX1101 ² ³ Do not prefix local calls with 'this.'
SA1200 Using directives must be placed within namespace
SA1201 Elements must appear in the correct order
SA1202 Elements must be ordered by access
SA1203 Constants must appear before fields
SA1204 Static elements must appear before instance elements
SA1205 Partial elements must declare access
SA1206 Declaration keywords must follow order
SA1207 Protected must come before internal
SA1208 System using directives must be placed before other using directives
SA1209 Using alias directives must be placed after other using directives
SA1210 Using directives must be ordered alphabetically by namespace
SA1211 Using alias directives must be ordered alphabetically by alias name
SA1212 Property accessors must follow order
SA1213 Event accessors must follow order
SA1214 Readonly fields must appear before non-readonly fields
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
SA1314 ³ The name of a C# type parameter does not begin with the capital letter T
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
S...
Read more

1.0.0

28 Jan 21:21
Compare
Choose a tag to compare

Summary

This is the first stable release of StyleCop Analyzers. 🎉

Aside from the version numbers, no changes were made since the 1.0.0-rc3 release.

Upgrade notices

Upgrading from StyleCop Classic

📝 This section only applies to users upgrading from StyleCop Classic to StyleCop Analyzers.

A list of known changes in behavior relative to StyleCop Classic is available to aid in the upgrade process.

Upgrading from an alpha or beta release

📝 This section only applies to users with an alpha or beta release of StyleCop Analyzers installed. Users with an RC release or newer do not need to take any special steps during upgrading.

Users upgrading from an earlier alpha or beta release of StyleCop Analyzers should first upgrade to 1.0.0 RC 3 according to those release notes, and then upgrade to this stable release.

Binaries

Analyzers

Table of Analyzers

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

ID Title Code Fix
SA0000 ³ ⁴ Workaround incomplete diagnostics in Visual Studio 2015 Update 1
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 braces must be spaced correctly
SA1013 Closing braces 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
SA1133 ³ Do not combine attributes
SA1134 ³ Attributes must not share line
SX1101 ² ³ Do not prefix local calls with 'this.'
SA1200 Using directives must be placed within namespace
SA1201 Elements must appear in the correct order
SA1202 Elements must be ordered by access
SA1203 Constants must appear before fields
SA1204 Static elements must appear before instance elements
SA1205 Partial elements must declare access
SA1206 Declaration keywords must follow order
SA1207 Protected must come before internal
SA1208 System using directives must be placed before other using directives
SA1209 Using alias directives must be placed after other using directives
SA1210 Using directives must be ordered alphabetically by namespace
SA1211 Using alias directives must be ordered alphabetically by alias name
SA1212 Property accessors must follow order
SA1213 Event accessors must follow order
SA1214 Readonly fields must appear before non-readonly fields
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 Braces 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 Braces must not be omitted
SA1504 All accessors must be single-line or multi-line
SA1505 Opening braces 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 braces must not be preceded by blank line
SA1509 Opening braces 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 brace 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 Use line endings correctly at end of file
SA1519 ³ Braces must not be omitted from multi-line child statement
SA1520 ³ Use braces 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 mus...
Read more

1.0.0 RC 3

28 Dec 20:55
Compare
Choose a tag to compare
1.0.0 RC 3 Pre-release
Pre-release

Release Candidate

Summary

Upgrade notices

Upgrading from StyleCop Classic

📝 This section applies to users upgrading from StyleCop Classic to StyleCop Analyzers.

➡️ We now have a list of known changes in behavior relative to StyleCop Classic.

Upgrading from 1.0.0-beta014 or 1.0.0-beta015

📝 This section only applies to users upgrading directly to this release from version 1.0.0-beta014 or 1.0.0-beta015.

⚠️ When upgrading to this package from 1.0.0-beta014 or 1.0.0-beta015, NuGet will fail to properly upgrade this package. To work around the problem, use either of the following approaches:

  1. Workaround 1: Uninstall the old version of StyleCop.Analyzers from all projects, then install the new version of StyleCop.Analyzers into those projects.
  2. Workaround 2: Upgrade StyleCop.Analyzers for one project at a time, rather than for multiple projects at once.

⚠️ When upgrading to this package from 1.0.0-beta014 or 1.0.0-beta015, if your project includes a stylecop.json file, you may need to manually update your project after updating to this release. Detailed steps are provided in EnableConfiguration.md. For more information about why this change was made, see #1788.

Binaries

Analyzers

Table of Analyzers

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

ID Title Code Fix
SA0000 ³ ⁴ Workaround incomplete diagnostics in Visual Studio 2015 Update 1
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 braces must be spaced correctly
SA1013 Closing braces 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
SA1133 ³ Do not combine attributes
SA1134 ³ Attributes must not share line
SX1101 ² ³ Do not prefix local calls with 'this.'
SA1200 Using directives must be placed within namespace
SA1201 Elements must appear in the correct order
SA1202 Elements must be ordered by access
SA1203 Constants must appear before fields
SA1204 Static elements must appear before instance elements
SA1205 Partial elements must declare access
SA1206 Declaration keywords must follow order
SA1207 Protected must come before internal
SA1208 System using directives must be placed before other using directives
SA1209 Using alias directives must be placed after other using directives
SA1210 Using directives must be ordered alphabetically by namespace
SA1211 Using alias directives must be ordered alphabetically by alias name
SA1212 Property accessors must follow order
SA1213 Event accessors must follow order
SA1214 Readonly fields must appear before non-readonly fields
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 Braces 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 Braces must not be omitted
SA1504 All accessors must be single-line or multi-line
SA1505 Opening braces 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 braces must not be preceded by blank line
SA1509 Opening braces must not be preceded by blank line
SA1510 Chained statement blocks must not be preceded by blank line
SA1511 ...
Read more

1.0.0 RC 2

07 Dec 00:27
Compare
Choose a tag to compare
1.0.0 RC 2 Pre-release
Pre-release

Release Candidate

Summary

Upgrade notice

➡️ We now have a list of known changes in behavior relative to StyleCop Classic.

⚠️ In some cases, NuGet will fail to properly upgrade this package. To work around the problem, use either of the following approaches:

  1. Workaround 1: Uninstall the old version of StyleCop.Analyzers from all projects, then install the new version of StyleCop.Analyzers into those projects.
  2. Workaround 2: Upgrade StyleCop.Analyzers for one project at a time, rather than for multiple projects at once.

⚠️ If your project includes a stylecop.json file, you may need to manually update your project after updating to this release. Detailed steps are provided in EnableConfiguration.md. For more information about why this change was made, see #1788.

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 braces must be spaced correctly
SA1013 Closing braces 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
SA1133 ³ Do not combine attributes
SA1134 ³ Attributes must not share line
SX1101 ² ³ Do not prefix local calls with 'this.'
SA1200 Using directives must be placed within namespace
SA1201 Elements must appear in the correct order
SA1202 Elements must be ordered by access
SA1203 Constants must appear before fields
SA1204 Static elements must appear before instance elements
SA1205 Partial elements must declare access
SA1206 Declaration keywords must follow order
SA1207 Protected must come before internal
SA1208 System using directives must be placed before other using directives
SA1209 Using alias directives must be placed after other using directives
SA1210 Using directives must be ordered alphabetically by namespace
SA1211 Using alias directives must be ordered alphabetically by alias name
SA1212 Property accessors must follow order
SA1213 Event accessors must follow order
SA1214 Readonly fields must appear before non-readonly fields
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 Braces 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 Braces must not be omitted
SA1504 All accessors must be single-line or multi-line
SA1505 Opening braces 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 braces must not be preceded by blank line
SA1509 Opening braces 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 brace 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 Use line endings correctly at end of file
SA1519 ³ Braces must not be omitted from multi-line child statement
SA1520 ³ Use braces 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 do...
Read more

1.0.0 RC 1

01 Dec 04:25
Compare
Choose a tag to compare
1.0.0 RC 1 Pre-release
Pre-release

Release Candidate

Summary

  • New rules
    • Readability: SA1134
    • Documentation: SA1625
  • New code fixes
    • Readability: SA1134
  • Bug fixes
  • Other
    • SA1300 now applies to enum members (#1859)
    • Disable ElementOrderCodeFixProvider until we can improve its reliability
    • Rule set editor now only shows diagnostics which have been implemented and are ready to use

Upgrade notice

➡️ We now have a list of known changes in behavior relative to StyleCop Classic.

⚠️ In some cases, NuGet will fail to properly upgrade this package. To work around the problem, use either of the following approaches:

  1. Workaround 1: Uninstall the old version of StyleCop.Analyzers from all projects, then install the new version of StyleCop.Analyzers into those projects.
  2. Workaround 2: Upgrade StyleCop.Analyzers for one project at a time, rather than for multiple projects at once.

⚠️ If your project includes a stylecop.json file, you may need to manually update your project after updating to this release. Detailed steps are provided in EnableConfiguration.md. For more information about why this change was made, see #1788.

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 braces must be spaced correctly
SA1013 Closing braces 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
SA1133 ³ Do not combine attributes
SA1134 ³ Attributes must not share line
SX1101 ² ³ Do not prefix local calls with 'this.'
SA1200 Using directives must be placed within namespace
SA1201 Elements must appear in the correct order
SA1202 Elements must be ordered by access
SA1203 Constants must appear before fields
SA1204 Static elements must appear before instance elements
SA1205 Partial elements must declare access
SA1206 Declaration keywords must follow order
SA1207 Protected must come before internal
SA1208 System using directives must be placed before other using directives
SA1209 Using alias directives must be placed after other using directives
SA1210 Using directives must be ordered alphabetically by namespace
SA1211 Using alias directives must be ordered alphabetically by alias name
SA1212 Property accessors must follow order
SA1213 Event accessors must follow order
SA1214 Readonly fields must appear before non-readonly fields
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 Braces 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 Braces must not be omitted
SA1504 All accessors must be single-line or multi-line
SA1505 Opening braces 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 braces must not be preceded by blank line
SA1509 Opening braces 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 brace 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 Use line endings correctly at end of file
SA15...
Read more

1.0.0 Beta 17

26 Nov 03:20
Compare
Choose a tag to compare
1.0.0 Beta 17 Pre-release
Pre-release

Feature and Bug Fix Update

Summary

  • New rules
    • Readability: SA1133
    • Documentation: SA1623, SA1624
  • New code fixes
    • Readability: SA1133
    • Documentation: SA1623, SA1624
  • Features
    • Added ordering option elementOrder
    • Added ordering option systemUsingDirectivesFirst
    • Added layout option newlineAtEndOfFile
  • Bug fixes
    • Readability: SA1118 (#1597)
    • Layout: SA1509 (#689)
    • Other:
      • Fixed AD0001 in various analyzers when stylecop.json is used (#1795)
      • Use a cache to effectively eliminate performance overhead of using stylecop.json (#1803)
  • Other
    • SA1215 was removed; former violations of this rule are now reported as SA1214

Upgrade notice

➡️ We now have a list of known changes in behavior relative to StyleCop Classic.

⚠️ If your project includes a stylecop.json file, you may need to manually update your project after updating to this release. Detailed steps are provided in EnableConfiguration.md. For more information about why this change was made, see #1788.

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 braces must be spaced correctly
SA1013 Closing braces 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
SA1133 ³ Do not combine attributes
SX1101 ² ³ Do not prefix local calls with 'this.'
SA1200 Using directives must be placed within namespace
SA1201 Elements must appear in the correct order
SA1202 Elements must be ordered by access
SA1203 Constants must appear before fields
SA1204 Static elements must appear before instance elements
SA1205 Partial elements must declare access
SA1206 Declaration keywords must follow order
SA1207 Protected must come before internal
SA1208 System using directives must be placed before other using directives
SA1209 Using alias directives must be placed after other using directives
SA1210 Using directives must be ordered alphabetically by namespace
SA1211 Using alias directives must be ordered alphabetically by alias name
SA1212 Property accessors must follow order
SA1213 Event accessors must follow order
SA1214 Readonly fields must appear before non-readonly fields
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 Braces 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 Braces must not be omitted
SA1504 All accessors must be single-line or multi-line
SA1505 Opening braces 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 braces must not be preceded by blank line
SA1509 Opening braces 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 brace 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 ³ Braces must not be omitted from multi-line child statement
SA1520 ³ Use braces 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...
Read more

1.0.0 Beta 16

19 Nov 14:36
Compare
Choose a tag to compare
1.0.0 Beta 16 Pre-release
Pre-release

Feature and Bug Fix Update

Summary

  • Features
    • Added configuration option usingDirectivesPlacement
  • Bug fixes

Breaking changes

⚠️ If your project includes a stylecop.json file, you may need to manually update your project after updating to this release. Detailed steps are provided in EnableConfiguration.md. For more information about why this change was made, see #1788.

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 braces must be spaced correctly
SA1013 Closing braces must be spaced correctly
SA1014 Opening generic brackets must be spaced correctly
SA1015 Closing generic brackets must be spaced correctly
SA1016 Opening attribute brackets must be spaced correctly
SA1017 Closing attribute brackets must be spaced correctly
SA1018 Nullable type symbols must be spaced correctly
SA1019 Member access symbols must be spaced correctly
SA1020 Increment decrement symbols must be spaced correctly
SA1021 Negative signs must be spaced correctly
SA1022 Positive signs must be spaced correctly
SA1023 Dereference and access of symbols must be spaced correctly
SA1024 Colons Must Be Spaced Correctly
SA1025 Code must not contain multiple whitespace in a row
SA1026 Code must not contain space after new keyword in implicitly typed array allocation
SA1027 Tabs must not be used
SA1028 ³ Code must not contain trailing whitespace
SA1100 Do not prefix calls with base unless local implementation exists
SA1101 Prefix local calls with this
SA1102 Query clause must follow previous clause
SA1103 Query clauses must be on separate lines or all on one line
SA1104 Query clause must begin on new line when previous clause spans multiple lines
SA1105 Query clauses spanning multiple lines must begin on own line
SA1106 Code must not contain empty statements
SA1107 Code must not contain multiple statements on one line
SA1108 Block statements must not contain embedded comments
SA1110 Opening parenthesis or bracket must be on declaration line
SA1111 Closing parenthesis must be on line of last parameter
SA1112 Closing parenthesis must be on line of opening parenthesis
SA1113 Comma must be on the same line as previous parameter
SA1114 Parameter list must follow declaration
SA1115 Parameter must follow comma
SA1116 Split parameters must start on line after declaration
SA1117 Parameters must be on same line or separate lines
SA1118 Parameter must not span multiple lines
SA1119 Statement must not use unnecessary parenthesis
SA1120 Comments must contain text
SA1121 Use built-in type alias
SA1122 Use string.Empty for empty strings
SA1123 Do not place regions within elements
SA1124 Do not use regions
SA1125 Use shorthand for nullable types ✔¹
SA1127 ³ Generic type constraints must be on their own line
SA1128 ³ Put constructor initializers on their own line
SA1129 ³ Do not use default value type constructor
SA1130 ³ Use lambda syntax ✔¹
SA1131 ³ Use readable conditions
SA1132 ³ Do not combine fields
SX1101 ² ³ Do not prefix local calls with 'this.'
SA1200 Using directives must be placed within namespace
SA1201 Elements must appear in the correct order
SA1202 Elements must be ordered by access
SA1203 Constants must appear before fields
SA1204 Static elements must appear before instance elements
SA1205 Partial elements must declare access
SA1206 Declaration keywords must follow order
SA1207 Protected must come before internal
SA1208 System using directives must be placed before other using directives
SA1209 Using alias directives must be placed after other using directives
SA1210 Using directives must be ordered alphabetically by namespace
SA1211 Using alias directives must be ordered alphabetically by alias name
SA1212 Property accessors must follow order
SA1213 Event accessors must follow order
SA1214 Static readonly elements must appear before static non-readonly elements
SA1215 Instance readonly elements must appear before instance non-readonly elements
SA1216 ³ Using static directives must be placed after other using directives
SA1217 ³ Using static directives must be ordered alphabetically
SA1300 Element must begin with upper-case letter
SA1302 Interface names must begin with I
SA1303 Const field names must begin with upper-case letter
SA1304 Non-private readonly fields must begin with upper-case letter
SA1305 ⁴ Field names must not use Hungarian notation
SA1306 Field names must begin with lower-case letter
SA1307 Accessible fields must begin with upper-case letter
SA1308 Variable names must not be prefixed
SA1309 Field names must not begin with underscore
SA1310 Field names must not contain underscore
SA1311 Static readonly fields must begin with upper-case letter
SA1312 ³ Variable names must begin with lower case letter
SA1313 ³ Parameter names must begin with lower case letter
SX1309 ² ³ Field names must begin with underscore
SX1309S ² ³ Static field names must begin with underscore
SA1400 Access modifier must be declared
SA1401 Fields must be private
SA1402 File may only contain a single class
SA1403 File may only contain a single namespace
SA1404 Code analysis suppression must have justification
SA1405 Debug.Assert must provide message text
SA1406 Debug.Fail must provide message text
SA1407 Arithmetic expressions must declare precedence
SA1408 Conditional expressions must declare precedence
SA1410 Remove delegate parenthesis when possible
SA1411 Attribute constructor must not use unnecessary parenthesis
SA1412 ³ ⁴ Store files as UTF-8
SA1500 Braces 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 Braces must not be omitted
SA1504 All accessors must be single-line or multi-line
SA1505 Opening braces 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 braces must not be preceded by blank line
SA1509 Opening braces 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 brace 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 ³ Braces must not be omitted from multi-line child statement
SA1520 ³ Use braces 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 Prop...
Read more

1.0.0 Beta 15

25 Oct 22:06
Compare
Choose a tag to compare
1.0.0 Beta 15 Pre-release
Pre-release

Feature and Bug Fix Update

Summary

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

Binaries

Analyzers

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

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