Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,29 @@ trim_trailing_whitespace = false

[*.cs]
# --- Naming ------------------------------------------------------------
# Private fields are camelCase with no underscore prefix.
# Naming rules only surface in the IDE unless IDE1006 itself has a severity.
dotnet_diagnostic.IDE1006.severity = warning

# Private constants — including static readonly, constants in spirit — are PascalCase.
dotnet_naming_rule.private_constants_are_pascal_case.severity = warning
dotnet_naming_rule.private_constants_are_pascal_case.symbols = private_constants
dotnet_naming_rule.private_constants_are_pascal_case.style = pascal_case_style

dotnet_naming_symbols.private_constants.applicable_kinds = field
dotnet_naming_symbols.private_constants.applicable_accessibilities = private
dotnet_naming_symbols.private_constants.required_modifiers = const

dotnet_naming_rule.private_static_readonly_fields_are_pascal_case.severity = warning
dotnet_naming_rule.private_static_readonly_fields_are_pascal_case.symbols = private_static_readonly_fields
dotnet_naming_rule.private_static_readonly_fields_are_pascal_case.style = pascal_case_style

dotnet_naming_symbols.private_static_readonly_fields.applicable_kinds = field
dotnet_naming_symbols.private_static_readonly_fields.applicable_accessibilities = private
dotnet_naming_symbols.private_static_readonly_fields.required_modifiers = static, readonly

dotnet_naming_style.pascal_case_style.capitalization = pascal_case

# All other private fields are camelCase with no underscore prefix.
dotnet_naming_rule.private_fields_are_camel_case.severity = warning
dotnet_naming_rule.private_fields_are_camel_case.symbols = private_fields
dotnet_naming_rule.private_fields_are_camel_case.style = camel_case_style
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ CodeCoverage/
TestResult.xml
nunit-*.xml

# JetBrains Rider
.idea/

# Zitadel dev PATs written by the AppHost bind mount
.zitadel/

3 changes: 2 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,8 @@ restart the AppHost.

- UTC instants end in `Utc` (`CreatedAtUtc`). Identifiers are spelled out —
no abbreviations.
- Private fields are camelCase without an underscore prefix.
- Private fields are camelCase without an underscore prefix; private
constants and static readonly fields are PascalCase.
- No nested local functions — write a normal method. Don't reach for local
functions; extract a private method instead. A one-liner local function can
occasionally be acceptable, but that's an edge case, not something to aim
Expand Down
3 changes: 2 additions & 1 deletion docs/technical-requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,8 @@ manipulates state itself (seeding through EF, reflection as a last resort).

- **Naming:** UTC instants end in `Utc` (`CreatedAtUtc`); identifiers are
spelled out in full — no abbreviations; private fields are camelCase without
an underscore prefix.
an underscore prefix, while private constants and static readonly fields are
PascalCase.
- **No nested local functions — write a normal method.** Don't reach for
local functions; extract a private method instead. A one-liner local
function can occasionally be acceptable, but that's an edge case, not
Expand Down
1 change: 1 addition & 0 deletions src/ProductReviews.Domain/ProductReviews.Domain.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
<PackageReference Include="Kalicz.StrongTypes.EfCore" />
<!-- Explicit floor so every project resolves one EF version (the Npgsql provider's transitive is older). -->
<PackageReference Include="Microsoft.EntityFrameworkCore" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
Expand Down