Synaptix.Analyzers
1.0.0
dotnet add package Synaptix.Analyzers --version 1.0.0
NuGet\Install-Package Synaptix.Analyzers -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Synaptix.Analyzers" Version="1.0.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.
<PackageVersion Include="Synaptix.Analyzers" Version="1.0.0" />
<PackageReference Include="Synaptix.Analyzers"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Synaptix.Analyzers --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Synaptix.Analyzers, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Synaptix.Analyzers@1.0.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Synaptix.Analyzers&version=1.0.0
#tool nuget:?package=Synaptix.Analyzers&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Synaptix.Analyzers
Roslyn analyzers encoding .stbl C# coding rules.
Install
dotnet add package Synaptix.Analyzers
Then add to your .editorconfig:
[*.cs]
dotnet_diagnostic.SYNAPTIX0001.severity = warning
dotnet_diagnostic.SYNAPTIX0002.severity = warning
dotnet_diagnostic.SYNAPTIX0003.severity = warning
dotnet_diagnostic.SYNAPTIX0004.severity = warning
dotnet_diagnostic.SYNAPTIX0005.severity = warning
dotnet_diagnostic.SYNAPTIX0006.severity = warning
dotnet_diagnostic.SYNAPTIX0007.severity = warning
dotnet_diagnostic.SYNAPTIX0008.severity = warning
dotnet_diagnostic.SYNAPTIX0009.severity = warning
dotnet_diagnostic.SYNAPTIX0010.severity = warning
dotnet_diagnostic.SYNAPTIX0011.severity = warning
(IDs are STBL0001...STBL0010; the analyzer emits them under the SYNAPTIX prefix as SYNAPTIX0001 etc.)
Rules
| ID | Title | Default Severity | CodeFix | Rationale |
|---|---|---|---|---|
STBL0001 |
Banned type-name suffix (Dto/Model/Impl/Util/Utility/ViewModel) |
Warning | Yes (rename, longest match) | Per naming-and-types.md — suffixes must describe role, not generic pattern. |
STBL0002 |
Banned parameter abbreviation (ct/req/resp/err/msg/ex/svc/u/x/tmp) |
Warning | Yes (expand) | Per naming-and-types.md — full names only. |
STBL0003 |
Private method in production class | Warning | Yes (extract to file static helper) | Per class-layout-and-tooling.md §1a — extract to file static helper class. |
STBL0004 |
ArgumentNullException.ThrowIfNull in non-boundary code |
Warning | Yes (is-null check) | Per code-shape.md §11 — trust the nullable signature. |
STBL0005 |
_ = await ... discard |
Warning | Yes (remove discard) | Per async-and-tasks.md §6 — bare await or documented fire-and-forget. |
STBL0006 |
Traditional constructor can be primary constructor (C# 12+) | Warning | Yes (convert) | Per class-layout-and-tooling.md — modern C# style. |
STBL0007 |
Private field uses banned underscore prefix | Warning | Yes (drop prefix) | Per naming-and-types.md §1 — NO underscore prefix. |
STBL0008 |
Concrete class is not sealed | Warning | Yes (add sealed) |
Per naming-and-types.md §2 — sealed REQUIRED on concrete classes. (Architectural: sealed is a structural decision.) |
STBL0009 |
Collection initializer can be a collection expression (C# 12+) | Warning | Yes (convert) | Per code-shape.md — modern C# style. |
STBL0010 |
#region directive is banned |
Warning | — (no fix) | Per code-shape.md §10 — use member organization instead. |
STBL0011 |
catch (Exception) outside top-level handler |
Warning | — (no fix) | Per exceptions.md §2 — catch the specific exception type you can act on; reserve catch-alls for top-level handlers. |
Each rule maps to a specific rule file in this repo:
- STBL0001
- STBL0002
- STBL0003
- STBL0004
- STBL0005
- STBL0006
- STBL0007–STBL0010: see docs/rules/ (docs to be expanded as rules stabilize)
Severity philosophy
- Warning for both style and architectural violations. Style issues come with
CodeFixes that apply silently in your IDE (Ctrl+. → Apply). Architectural issues
(STBL0003 — extract to
file statichelper class; STBL0010 — no regions) don't have CodeFixes because the right answer requires manual context.
Versioning
Each rule follows SemVer. Breaking change in a rule (e.g., new banned suffix, lower false-positive tolerance) = major bump. New rule = minor. Fix = patch.
License
MIT — see LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- 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 |
|---|---|---|
| 1.0.0 | 124 | 7/31/2026 |