CodeTiger.CodeAnalysis 1.1.0

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.

Requires NuGet 2.8 or higher.

Install-Package CodeTiger.CodeAnalysis -Version 1.1.0
dotnet add package CodeTiger.CodeAnalysis --version 1.1.0
<PackageReference Include="CodeTiger.CodeAnalysis" Version="1.1.0">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CodeTiger.CodeAnalysis --version 1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

Changes for 1.1.0:
-Changed CT1712 to allow discards in lambda expressions.
-Changed CT1714 to allow property names that are longer words that happen to start with the same characters of the containing type.
-Changed CT3213 to be case-insensitive.
-Added CT1011 to identify default parameter values that do not match base definitions.
-Added CT1012 to identify Attribute subclasses that do not include an AttributeUsage attribute.
-Added CT1013 to identify public constructors of abstract classes.
-Added CT1014 to identify externally-accessible members that use tuple types.
-Added CT1019 to identify when the presence of the 'params' keyword does not match the base definition.
-Added CT1020 to identify extension methods that do not use the 'this' parameter.
-Added CT1501 to identify default values of externally-accessible parameters.
-Added CT1505 to identify composite values of Flags enumerations that are not combinations of other values.
-Added CT1713 to identify some common hungarian notation.
-Added CT1802 to identify unnecessary use of the Where LINQ extension method that could be simplified.
-Added CT3000 to identify files that start with blank lines.
-Added CT3001 to identify files that do not end with a blank line.
-Added CT3002 to identify consecutive blank lines.

Changes for 1.0.1:
-Changed filename analysis to allow underscores for generic type argument separators and suffixes (such as `Tests`) after those separators.
-Added a resource file for localizable strings.
-Lots of minor internal code cleanup.

Changes for 1.0.0:
-Fixed InheritedMemberDesignAnalyzer to better handle System.Object and generic types.
-Fixed the handling of preprocessor directives by UsingDirectiveOrderAnalyzer.
-Fixed SingleLineLayoutAnalyzer to not consider attributes when determining the line span of an element.
-Fixed NonGenericCollectionDesignAnalyzer to better handle field declarations that contain multiple variables.
-Fixed several possible NullReferenceExceptions in ParenthesisLayoutAnalyzer.
-Fixed a bug where CommaLayoutAnalyzer used Count instead of SeparatorCount when analyzing AnonymousObjectCreationExpression nodes.
-Fixed ParenthesisLayoutAnalyzer to not report CT3535 for closing parenthesis after the type in catch clauses that did not include an identifier.
-Fixed CT1727 and CT1728 to consider generic type parameter constraints when determining whether a method returns a Task.
-Fixed CT3505 to not include attributes when determining the line span of an accessor.
-Fixed a false positive of CT3213 with static using directives.
-Fixed a false positive of CT3503 when a property contains expression-bodied accessors.
-Excluded attributes applied to accessors when BraceLayoutAnalyzer determines whether an accessor is single- or multi-line.
-Changed CT3501 to be more permissive with closing braces of multi-line lambdas passed as arguments.
-Changed ThreadingReliabilityAnalyzer to include the accessibility of the objects containing the member being used when determining overall accessibility.
-Changed FileNamingAnalyzer to allow file names that follow the standard format for generic types (e.g. 'List`1.cs').
-Changed BraceLayoutAnalyzer to allow closing curly braces to be followed by where clauses (in a do-while statement), commas, or closing parenthesis.
-Changed CT3503 to not report expression-bodied properties.
-Changed CT3503 to not require default values to be on the same line.
-Changed TypeAliasReadabilityAnalyzer to not check type names in documentation comments.
-Improved handling of verbatim identifiers.
-Added '<developmentDependency>true</developmentDependency>' to CodeTiger.CodeAnalysis.nuspec. Removed System.Collections.Immutable.dll from CodeTiger.CodeAnalysis.nuspec.
-Made several small performance improvements.
-Added CT1730 to identify type names that match the name of the containing namespace.
-Added CT3218 to identify non-static using directives that appear after static using directives.
-Added CT3528 to identify multiple statements on the same line.
-Added CT3529 to identify LINQ queries that have some (but not all) clauses on the same line.
-Added CT3532 to identify opening parenthesis that are not on the same line as the preceding keyword.
-Added CT3533 to identify opening parenthesis that are not on the same line as the preceding identifier.
-Added CT3534 to identify closing parenthesis that are not on the same line as the preceding argument.
-Added CT3535 to identify closing parenthesis that are not on the same line as the preceding element.
-Added CT3536 to identify empty parentheses that are not on the same line.
-Added CT3537 to identify commas that are not on the same line as their preceding element.
-Added CT3538 to identify parameter declarations defined across multiple lines.
-Added CT3539 to identify non-trivial switch section statements that do not begin on a new line.
-Added CT3540 to identify binary operators at the end of a line.

  • .NETStandard 1.3

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
1.1.0 87 9/7/2020
1.0.1-beta02 233 2/12/2020
1.0.0 325 3/3/2019
1.0.0-beta05 1,541 4/12/2018
0.8.0 873 9/10/2017
0.3.3 682 2/10/2017
0.3.2-alpha2 411 10/6/2016
0.3.2-alpha 380 10/6/2016
0.3.1-alpha 401 5/14/2016
0.3.0-alpha 570 8/26/2015
0.2.0-alpha1 445 6/20/2015
0.1.0-alpha1 442 4/30/2015