TimeWarp.SourceGenerators ships Roslyn analyzers for C# file names, global usings, and the generic style rules TWA0004, TWA0023, and TWA0038.
If you like or are using this project please give it a star. Thank you!
Enforces kebab-case naming for C# files, including multi-dot partials (e.g. application-state.close-modal.cs) when every segment is kebab-case.
Configure exceptions in .editorconfig:
[*.cs]
dotnet_diagnostic.TW0001.excluded_files = Program.cs;Startup.cs;*.Designer.csReports file-level using directives that should move to kebab-case global-usings.cs, including usings after a file-scoped namespace X; (the gap in BDSoftware GlobalUsingsAnalyzer 1.4.0). Disabled by default.
[*.cs]
dotnet_diagnostic.TW0007.severity = warning
dotnet_diagnostic.TW0007.filename = global-usings.csSee configure-global-usings-analyzer.md.
These ids are unchanged, so an existing .editorconfig entry still applies. Other TWA* ids stay in TimeWarp.Architecture.Analyzers.
| ID | Rule | Default |
|---|---|---|
| TWA0004 | #region Purpose in every non-generated C# file |
Warning, enabled |
| TWA0023 | Identifier ends with its type stem | Warning, disabled |
| TWA0038 | File longer than 500 lines (max_lines overrides) |
Warning, enabled |
[*.cs]
dotnet_diagnostic.TWA0004.severity = warning
dotnet_diagnostic.TWA0023.severity = none
dotnet_diagnostic.TWA0038.severity = warning
dotnet_diagnostic.TWA0038.max_lines = 500TWA0023 opt-out is [TypeStemIdentifier("reason")]. The attribute type stays in TimeWarp.Architecture.Attributes and is matched by simple name.
| Prefix | Where it lives |
|---|---|
| TW | TimeWarp.SourceGenerators — TW0001 and TW0007 |
| TWA0004, TWA0023, TWA0038 | TimeWarp.SourceGenerators — generic style rules moved from Architecture.Analyzers. Same ids. |
| other TWA* | TimeWarp.Architecture.Analyzers — contracts, endpoints, slices, and the rest |
File-name kebab-case is TW0001 (dotnet_diagnostic.TW0001.*, #pragma warning disable TW0001). Do not configure that rule with a TWA* id.
To quickly get started I recommend reviewing the samples in this repo.
dotnet add package TimeWarp.SourceGeneratorsYou can see the latest NuGet packages from the official TimeWarp NuGet page.
See the Release Notes
Time is of the essence. Before developing a Pull Request I recommend opening a discussion.
Please feel free to make suggestions and help out with the documentation. Please refer to Markdown for how to write markdown files.
Sometimes the github notifications get lost in the shuffle. If you file an issue and don't get a response in a timely manner feel free to ping on our Discord server.
