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.
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.
- No dependencies.