General purpose Roslyn-based static code analysis rules for C#.
While not intended to be an exact replacement for StyleCop, many of the individual diagnostics are similar to StyleCop rules.
See the version list below for details.
Requires NuGet 2.8 or higher.
Install-Package CodeTiger.CodeAnalysis -Version 0.8.0
dotnet add package CodeTiger.CodeAnalysis --version 0.8.0
<PackageReference Include="CodeTiger.CodeAnalysis" Version="0.8.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add CodeTiger.CodeAnalysis --version 0.8.0
Fixed CT1002 to allow hiding base methods with a return type of 'object'.
Fixed two possible NullReferenceExceptions in ExceptionUsageAnalyzer.
Modified all analyzers to disable analysis on generated code and enable concurrent execution.
Changed InitializationPerformanceAnalyzer to only flag variables that are always (instead of sometimes) initialized twice.
Modified CT1702 to report non-interface type names prefixed with 'I'.
Added CT1007 to identify types that have finalizers but no unmanaged state.
Added CT1008 to identify empty finalizers.
Added CT1701 to identify files without pascal-cased names.
Added CT1704 to identify incorrectly-cased private field names.
Added CT1705 to identify incorrectly-cased event names.
Added CT1706 to identify incorrectly-cased delegate names.
Added CT1707 to identify incorrectly-cased property names.
Added CT1708 to identify incorrectly-cased method names.
Added CT1709 to identify incorrectly-cased enumeration member names.
Added CT1710 to identify incorrectly-cased variable names.
Added CT1711 to identify incorrectly-cased interface names.
Added CT1714 to identify when property names begin with the name of the containing type.
Added CT1715, CT1716, and CT1717 to identify incorrectly-cased, non-descriptive, or incorrectly-suffixed generic type parameter names.
Added CT1718 to identify property names prefixed with Get or Set.
Added CT1719 and CT1720 to identify class names prefixed or suffixed with 'Abstract' or 'Base'.
Added CT1721 and CT1722 to identify type names with incorrect 'Attribute' suffix usage.
Added CT1723 and CT1724 to identify type names with incorrect 'Exception' suffix usage.
Added CT1725 and CT1726 to identify type names with incorrect 'EventArgs' suffix usage.
Added CT1727 and CT1728 to identify method names with incorrect use of the `Async` suffix.
Added CT1729 to identify source file names that don't match the primary type name in the file.
Added CT2203 to identify usage of Environment.Exit.
Added CT3113 to identify literals on the left side of comparison operators.
Added CT3114 to identify constants on the left side of comparison operators.
Added CT3500 to identify namespaces defined on a single line.
Added CT3501 to identify braces for multi-line elements that are not on a new line.
Added CT3502 to identify types that are defined on a single line.
Added CT3503 to identify auto-properties defined on multiple lines.
Added CT3504 to identify non-auto-properties defined on a single line.
Added CT3505 to identify trivial accessors defined on multiple lines.
Added CT3506 to identify non-trivial accessors defined on a single line.
Added CT3507 to identify methods defined on a single line.
Added CT3508 to identify Try statements defined on a single line.
Added CT3509 to identify non-trivial catch clauses defined on a single line.
Added CT3510 to identify catch clauses that do not begin on a new line.
Added CT3511 to identify finally clauses defined on a single line.
Added CT3512 to identify finally clauses that do not begin on a new line.
Added CT3513 to identify if statements defined on a single line.
Added CT3514 to identify else clauses defined on a single line.
Added CT3515 to identify else clauses that do not begin on a new line.
Added CT3516 to identify for statements defined on a single line.
Added CT3517 to identify foreach statements defined on a single line.
Added CT3518 to identify switch statements defined on a single line.
Added CT3519 to identify while statements defined on a single line.
Added CT3520 to identify do statements defined on a single line.
Added CT3521 to identify using statements defined on a single line.
Added CT3522 to identify fixed statements defined on a single line.
Added CT3523 to identify lock statements defined on a single line.
Added CT3524 to identify non-trivial switch sections defined on a single line.
Added CT3525 to identify code blocks without braces.
Added CT3526 to identify multiple attributes declared in the same attribute list.
Added CT3527 to identify multiple attribute lists declared on the same line.
Added CT3530 to identify multi-line expressions that are split after a dot or member access token.
Added CT3531 to identify lines of code that exceed the maximum length.
This package has no dependencies.
This package is not used by any popular GitHub repositories.