chore: bootstrap Anvil repo skeleton

First commit on feature/v0.1.0 establishes the Hellion Forge plugin
scaffold:

- .gitattributes: Linux-first LF defaults, Windows-script CRLF exceptions,
  binary markers for fonts / images / archives. Pre-empts the
  Forgeimizer pre-push hook crash that was caused by Asriels CRLF default.
- .editorconfig: Hellion Forge .NET conventions
  (private fields _camelCase, Allman braces, var-preferred).
- .gitignore: VisualStudio baseline + secrets bucket + Anvil.Tests
  excluded (build-suite lives in the local Hellion Build test repo).
- LICENSE: MIT, Hellion Online Media 2026.
- NOTICE.md: goodwill attribution to Craftimizer and clean-room
  anonymisation note.
- PRIVACY.md: zero-telemetry statement matching 00-Anvil-Scope.
- README.md: v0.1.0 status + planned-feature outline + custom-repo URL.
- Anvil.sln + Anvil/Anvil.csproj: Dalamud.NET.Sdk/15.0.0, x64 platform
  pinned (forge-wide rule), Microsoft.Extensions.Hosting stack closed-range
  pin to 10.0.7 matching HellionChat v1.5.0. No DalamudPackager.targets
  override - SDK 15 default packager handles images / icon / image_urls.
- Anvil/Anvil.yaml: plugin manifest with explicit icon_url / image_urls
  (top-level fields required for SDK 15 default packager) and a v0.1.0
  changelog entry that names RecipeData as the first module.
This commit is contained in:
2026-05-27 19:16:36 +02:00
commit 96553a849a
10 changed files with 855 additions and 0 deletions
+182
View File
@@ -0,0 +1,182 @@
# ##############################################################
# #
# # .editorconfig Hellion Forge / Anvil
# #
# # Überarbeitet: Mai 2026
# #
# # Strategie:
# # - Standard-.NET-Conventions (private Fields = _camelCase)
# # - CSharpier übernimmt die meiste Formatierung
# # - Hier: Naming, IDE-Hints, Backup-Format-Regeln
# #
# # ##############################################################
root = true
# =====================================================
# Defaults (alle Files)
# =====================================================
[*]
indent_style = space
tab_width = 4
indent_size = 4
charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
# =====================================================
# Markdown: Trailing Spaces erlaubt (2 Spaces = <br>)
# =====================================================
[*.md]
trim_trailing_whitespace = false
# =====================================================
# JSON / YAML: 2-Space-Indent
# =====================================================
[*.{yaml,yml}]
indent_size = 2
[*.{json,jsonc}]
indent_size = 2
# =====================================================
# .NET / Resources: 4-Space-Indent
# =====================================================
[*.{cs,csx}]
indent_size = 4
[*.{xml,xsd,resx,resw,nuspec,config}]
indent_size = 4
# ##############################################################
# #
# # C# Sektion: Style, Naming, Format
# #
# ##############################################################
[*.{cs,csx}]
# =====================================================
# C# Style var-Präferenz
# =====================================================
csharp_style_var_for_built_in_types = true:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion
csharp_style_var_elsewhere = true:suggestion
# =====================================================
# C# Style Sonstiges
# =====================================================
csharp_style_prefer_utf8_string_literals = true:suggestion
csharp_preferred_modifier_order = public, private, protected, internal, file, new, static, abstract, virtual, sealed, readonly, override, extern, unsafe, volatile, async, required:suggestion
csharp_new_line_before_members_in_object_initializers = false
# =====================================================
# C# Format Braces (Allman)
# =====================================================
csharp_new_line_before_open_brace = all
csharp_new_line_before_else = true
csharp_new_line_before_catch = true
csharp_new_line_before_finally = true
# =====================================================
# C# Format Switch-Einrückung
# =====================================================
csharp_indent_case_contents = true
csharp_indent_switch_labels = true
# =====================================================
# .NET Style Qualification (kein "this." nötig)
# =====================================================
dotnet_style_qualification_for_field = false:suggestion
dotnet_style_qualification_for_property = false:suggestion
dotnet_style_qualification_for_method = false:suggestion
dotnet_style_qualification_for_event = false:suggestion
# =====================================================
# .NET Style Predefined Types (int statt Int32 etc.)
# =====================================================
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
dotnet_style_predefined_type_for_member_access = true:suggestion
# =====================================================
# .NET Style Accessibility-Modifier erzwingen
# =====================================================
dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion
# ##############################################################
# #
# # Naming Conventions (.NET-Standard)
# #
# # Private Instance Fields: _camelCase
# # Private Static Fields: _camelCase
# # Private Constants: PascalCase
# # Private Static Readonly: PascalCase
# #
# ##############################################################
dotnet_naming_style.underscore_camel_case_style.capitalization = camel_case
dotnet_naming_style.underscore_camel_case_style.required_prefix = _
dotnet_naming_style.pascal_case_style.capitalization = pascal_case
dotnet_naming_rule.private_instance_fields.severity = warning
dotnet_naming_rule.private_instance_fields.symbols = private_instance_fields_symbols
dotnet_naming_rule.private_instance_fields.style = underscore_camel_case_style
dotnet_naming_symbols.private_instance_fields_symbols.applicable_kinds = field
dotnet_naming_symbols.private_instance_fields_symbols.applicable_accessibilities = private
dotnet_naming_rule.private_static_fields.severity = warning
dotnet_naming_rule.private_static_fields.symbols = private_static_fields_symbols
dotnet_naming_rule.private_static_fields.style = underscore_camel_case_style
dotnet_naming_symbols.private_static_fields_symbols.applicable_kinds = field
dotnet_naming_symbols.private_static_fields_symbols.applicable_accessibilities = private
dotnet_naming_symbols.private_static_fields_symbols.required_modifiers = static
dotnet_naming_rule.private_constants.severity = warning
dotnet_naming_rule.private_constants.symbols = private_constants_symbols
dotnet_naming_rule.private_constants.style = pascal_case_style
dotnet_naming_symbols.private_constants_symbols.applicable_kinds = field
dotnet_naming_symbols.private_constants_symbols.applicable_accessibilities = private
dotnet_naming_symbols.private_constants_symbols.required_modifiers = const
dotnet_naming_rule.private_static_readonly.severity = warning
dotnet_naming_rule.private_static_readonly.symbols = private_static_readonly_symbols
dotnet_naming_rule.private_static_readonly.style = pascal_case_style
dotnet_naming_symbols.private_static_readonly_symbols.applicable_kinds = field
dotnet_naming_symbols.private_static_readonly_symbols.applicable_accessibilities = private
dotnet_naming_symbols.private_static_readonly_symbols.required_modifiers = static, readonly