# EditorConfig for the Elternbeirat solution. # https://editorconfig.org / https://learn.microsoft.com/dotnet/fundamentals/code-analysis/code-style-rule-options # # Code-style rules are added here over time. Kept intentionally minimal for now; # the .NET analyzers (see Directory.Build.props) already run at their sharpest. root = true [*] charset = utf-8 end_of_line = crlf insert_final_newline = true trim_trailing_whitespace = true indent_style = space [*.{cs,csproj,props,targets}] indent_size = 4 [*.{json,yml,yaml}] indent_size = 2 [*.cs] # CA1716 flags type names that collide with Visual Basic keywords (e.g. Event). # This app is not consumed from VB, and Event/Post are the project's deliberate # domain names (see CLAUDE.md: "im Code Event, nicht Termin"). Renaming would # break that convention for a problem this codebase does not have. dotnet_diagnostic.CA1716.severity = none # CA1515 suggests making types internal because an app's types are not referenced # from outside its assembly. That is a library-author rule with no benefit here: # this is an application, not a reusable package. Razor components (Home, PostList, # ...) must stay public so Blazor can render them, and the Contracts records are # consumed from another project. Turning types internal would gain nothing. dotnet_diagnostic.CA1515.severity = none # CA1062 wants public methods to null-check their arguments. The public surface # here is DI constructors and Blazor components, never called by foreign code with # raw arguments; the container always supplies its dependencies. With #nullable on, # a non-nullable parameter already carries the "never null" contract in its type. dotnet_diagnostic.CA1062.severity = none # CA2007 (ConfigureAwait) targets libraries with a SynchronizationContext (WinForms, # WPF, classic ASP.NET). ASP.NET Core has none, so ConfigureAwait(false) would be # pure noise here. Microsoft's own project templates disable this rule. dotnet_diagnostic.CA2007.severity = none # CA1812 flags types "never instantiated". The JSON DTOs (e.g. RecordList) are # only created by the deserializer via reflection, which the analyzer cannot see. # This is a known false positive for deserialization types. dotnet_diagnostic.CA1812.severity = none # CA1724 flags a type name that matches part of its namespace (Home in # ...Features.Home). That collision is a deliberate result of the feature-folder # layout and is harmless (Blazor routing is not namespace-based). Renaming would # break the folder convention for no benefit. dotnet_diagnostic.CA1724.severity = none # CA1308 wants ToUpperInvariant over ToLowerInvariant. That advice is for # normalizing before a comparison, where a few characters do not round-trip. Here # lowercasing is the goal itself (URL slugs, which must be lowercase), not a step # before a comparison -- comparisons use StringComparison.OrdinalIgnoreCase instead. dotnet_diagnostic.CA1308.severity = none