﻿##############################################################
##
##   .gitattributes – Hellion Forge / Hellion Media
##
##   Setup:        Linux-First Development
##                 (Hauptentwicklung auf Linux, Target = Dalamud/Windows)
##   Überarbeitet: Mai 2026
##
##   Strategie:
##     - Default:                Alles LF (Linux-Konvention)
##     - Windows-Batch-Scripts:  CRLF (technische Pflicht!)
##     - PowerShell:             CRLF (Sicherheit für Windows PS 5.1)
##     - Binärdateien:           explizit markiert (gegen Korruption)
##
##   Hinweis:
##     Moderne Visual-Studio- und MSBuild-Versionen kommen
##     problemlos mit LF in .sln/.csproj klar.
##     Falls jemals Probleme auftauchen: hier umstellen.
##
##############################################################


# =====================================================
# Default: Auto-Detect, alles auf LF normalisieren
# =====================================================

* text=auto eol=lf


# =====================================================
# Source Code (LF)
# =====================================================

*.cs            text eol=lf
*.csx           text eol=lf
*.vb            text eol=lf
*.fs            text eol=lf
*.fsx           text eol=lf


# =====================================================
# Configs & Daten (LF)
# =====================================================

*.json          text eol=lf
*.yml           text eol=lf
*.yaml          text eol=lf
*.xml           text eol=lf
*.md            text eol=lf
*.txt           text eol=lf
*.config        text eol=lf
*.editorconfig  text eol=lf
.gitignore      text eol=lf
.gitattributes  text eol=lf
.env.example    text eol=lf


# =====================================================
# Visual Studio / MSBuild Project Files (LF)
# Linux-first: moderne Tools kommen mit LF zurecht
# =====================================================

*.sln           text eol=lf
*.csproj        text eol=lf
*.vbproj        text eol=lf
*.fsproj        text eol=lf
*.props         text eol=lf
*.targets       text eol=lf


# =====================================================
# Resources & Lokalisierung (LF)
# =====================================================

# Linguist soll generierte Sprachdateien nicht mitzählen
HellionChat/Resources/Language.*.resx linguist-generated=true

*.resx          text eol=lf
*.resw          text eol=lf


# =====================================================
# Linux/Mac-Scripts (LF – Pflicht)
# =====================================================

*.sh            text eol=lf
*.bash          text eol=lf
*.zsh           text eol=lf


# =====================================================
# >>> AUSNAHMEN <<<
# Windows-Scripts brauchen ZWINGEND CRLF.
# Mit LF werden diese auf Windows nicht ausgeführt!
# =====================================================

# Batch-Scripts (cmd.exe braucht CRLF)
*.bat           text eol=crlf
*.cmd           text eol=crlf

# PowerShell (PS 7+ wäre LF-tolerant,
# aber Windows PowerShell 5.1 zickt teilweise)
*.ps1           text eol=crlf
*.psm1          text eol=crlf
*.psd1          text eol=crlf


# =====================================================
# Binäre Build-Artefakte
# =====================================================

*.dll           binary
*.exe           binary
*.pdb           binary
*.so            binary
*.dylib         binary
*.nupkg         binary
*.snupkg        binary


# =====================================================
# Bilder (binary)
# =====================================================

*.png           binary
*.jpg           binary
*.jpeg          binary
*.gif           binary
*.ico           binary
*.bmp           binary
*.tiff          binary
*.webp          binary

# SVG ist eigentlich XML – als Text behandeln
*.svg           text eol=lf


# =====================================================
# Fonts (binary)
# =====================================================

*.ttf           binary
*.otf           binary
*.woff          binary
*.woff2         binary
*.eot           binary


# =====================================================
# Archive (binary)
# =====================================================

*.zip           binary
*.7z            binary
*.tar           binary
*.gz            binary
*.rar           binary


# =====================================================
# Audio / Video (binary)
# =====================================================

*.wav           binary
*.mp3           binary
*.ogg           binary
*.mp4           binary


# =====================================================
# FFXIV / Dalamud spezifische Binär-Formate
# =====================================================

*.tex           binary
*.pap           binary
*.avfx          binary
*.shpk          binary
*.scd           binary