Qowaiv.Analyzers.CSharp
2.0.1
See the version list below for details.
dotnet add package Qowaiv.Analyzers.CSharp --version 2.0.1
NuGet\Install-Package Qowaiv.Analyzers.CSharp -Version 2.0.1
<PackageReference Include="Qowaiv.Analyzers.CSharp" Version="2.0.1"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add Qowaiv.Analyzers.CSharp --version 2.0.1
#r "nuget: Qowaiv.Analyzers.CSharp, 2.0.1"
// Install Qowaiv.Analyzers.CSharp as a Cake Addin #addin nuget:?package=Qowaiv.Analyzers.CSharp&version=2.0.1 // Install Qowaiv.Analyzers.CSharp as a Cake Tool #tool nuget:?package=Qowaiv.Analyzers.CSharp&version=2.0.1
Qowaiv (static code) analyzers
Contains Roslyn (static code) diagnostic analyzers.
Rules
- QW0001 - Use a testable Time Provider
- QW0003 - Decorate pure functions
- QW0004 - Characters with Trojan Horse potential are not allowed
- QW0005 - Seal concrete classes unless designed for inheritance
- QW0006 - Only unsealed concrete classes should be decorated as inheritable
- QW0007 - Use file-scoped namespace declarations
- QW0008 - Define properties as not-nullable for types with a defined empty state
- QW0009 - Define properties as not-nullable for enums with a defined none/empty value
- QW0010 - Use System.DateOnly instead of Qowaiv.Date
- QW0011 - Define properties as immutables
- QW0012 - Use immutable types for properties
- QW0013 - Use Qowaiv decimal rounding
- QW0014 - Define global using statements separately
- QW0015 - Define global using statements in single file
- QW0016 - Prefer regular over positional properties
Code fixes
- Use Qowaiv.Clock (QW0001, S6354)
- Seal class (QW0005)
- Change property type to not-nullable (QW0008, QW0009)
- Change type System.DateOnly (QW0010)
- Apply suggestions of obsolete code attribute ([CS0618, CS0619])/rules/ObsoleteCode.md))
- Use Qowaiv round extensions (QW0013)
- Convert positional properties (QW0016)
Learn more about Target Frameworks and .NET Standard.
This package has 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 | Downloads | Last updated |
---|---|---|
2.0.3 | 7,137 | 9/25/2024 |
2.0.2 | 3,527 | 8/28/2024 |
2.0.1 | 1,857 | 8/9/2024 |
2.0.0 | 850 | 8/7/2024 |
1.0.9 | 280 | 8/6/2024 |
1.0.8 | 959 | 7/15/2024 |
1.0.7 | 287 | 7/11/2024 |
1.0.6 | 420 | 7/8/2024 |
1.0.5 | 710 | 6/28/2024 |
1.0.4 | 5,710 | 3/18/2024 |
1.0.3 | 2,588 | 2/23/2024 |
1.0.2 | 861 | 2/21/2024 |
1.0.1 | 484 | 2/19/2024 |
1.0.0 | 3,171 | 1/23/2024 |
0.0.8 | 22,723 | 6/26/2023 |
0.0.7 | 392 | 6/23/2023 |
0.0.6.1 | 1,145 | 6/15/2023 |
0.0.6 | 360 | 6/14/2023 |
0.0.5.3 | 2,044 | 5/16/2023 |
0.0.5.2 | 3,709 | 3/7/2023 |
0.0.5.1 | 2,104 | 1/30/2023 |
0.0.5 | 758 | 11/27/2022 |
0.0.4.1 | 788 | 11/1/2022 |
0.0.4 | 399 | 11/1/2022 |
0.0.3.1 | 29,131 | 11/23/2021 |
0.0.3 | 407 | 11/12/2021 |
0.0.2 | 1,290 | 10/29/2021 |
0.0.1.1 | 529 | 10/28/2021 |
0.0.1 | 396 | 10/27/2021 |
v2.0.1
- QW0016: Only take public records into account (FP). #48
v2.0.0
- Depend on Microsoft.CodeAnalysis 4.10.0 (potential breaking). #46
- QW0016: Obsolete code and required by base parameters should be ignored (FP). #47
v1.0.9
- QW0016: Locations are commonly past through as full paths (NEW RULE). #45
v1.0.8
- QW0015: Locations are commonly past through as full paths (FP). #42
v1.0.7
- QW0015: Define global using statements in single file (NEW RULE). #41
- QW0014: Define global using statements separately (NEW RULE). #40
v1.0.6
- QW0013: Use Qowaiv decimal rounding (NEW RULE). #39
- QW0008: Take static read-only Empty properties into account (FN). #38
v1.0.5
- QW0011, QW0012: Ingore IEnumerator and IXmlSerialable (FP). #37
v1.0.4
- QW0011, QW0012: Ignore types with a mutable base (FP). #36
v1.0.3
- QW0012: Types that have Immutable in there name are considered immutable (FP). #34
- QW0003: [DoesNotReturn] should be valid alternative for [Pure] (FP). #33
v1.0.2
- QW0012: Reduce FP's by ignoring potential mutable property types (FP). #32
v1.0.1
- QW0011: Define properties as immutables. #31
- QW0012: Use immutable types for properties. #31
v1.0.0
- QW0010: Use System.DateOnly instead of Qowaiv.Date. #29
- CS0618, CS0619: Code fix for obsolete code with a suggestion. #30
- Depend on Microsoft.CodeAnalysis 4.*. #27
v0.0.8
- Code fix for QW0005: Seal class. #26
- FN: Generics containing types that should not be nullable are now taken into account. #25
v0.0.7
- Code fix for QW0008 and QW0009. #22
- QW0009: Define properties as not-nullable for enums with a defined none value. #23
- QW0008: Define properties as not-nullable for types with an empty state. #21
- QW0008: Value Types with an empty state should be used as nullable properties. #18
v0.0.6.1
- QW0001: Provide a fix to suggest the usage of Qowaiv.Clock. #17
v0.0.6
- QW0001: Also reports on DateTime.Offset. #17
v0.0.5.3
- QW0003: Returning ValueTask is never a pure function. #16
- QW0003: Returning IDisposable can be a pure function. #16
v0.0.5.2
- QW0005: All attributes should be excluded. #15
v0.0.5.1
- QW0004: Mathematical Alphanumeric Symbols are not suspicious. #14
v0.0.5
- QW0007: Use file-scoped namespace scopes. #13
v0.0.4.1
- QW0006: Seal concrete classes unless designed for inheritance. #9
v0.0.4
- QW0005: Seal concrete classes unless designed for inheritance. #9
v0.0.3.1
- QW0004: Horizontal tab (U+9, \t) is allowed too. #6
v0.0.3
- QW0004: Characters with Trojan Horse potential are not allowed.
v0.0.2
- QW0003: Decorate pure functions.
v0.0.1
- QW0001: Use a testable time provider.
- QW0002: Parse() throws.