# Auto-detect text files and normalize line endings to LF in the repository
* text=auto eol=lf

# Scripts & Unix-oriented configs — always LF
*.sh text eol=lf
*.bash text eol=lf
*.zsh text eol=lf
Makefile text eol=lf
*.mk text eol=lf

# Windows-oriented scripts — always CRLF
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf

# Common text/config formats — normalize to LF
*.md text eol=lf
*.txt text eol=lf
*.yml text eol=lf
*.yaml text eol=lf
*.json text eol=lf
*.jsonc text eol=lf
*.toml text eol=lf
*.ini text eol=lf
*.cfg text eol=lf
*.xml text eol=lf
*.html text eol=lf
*.css text eol=lf
*.scss text eol=lf
*.js text eol=lf
*.mjs text eol=lf
*.ts text eol=lf
*.py text eol=lf
*.sql text eol=lf

# Git-specific
.gitattributes text eol=lf
.gitignore text eol=lf

# Binary files — never diff or convert line endings
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.webp binary
*.pdf binary
*.zip binary
*.gz binary
*.tar binary
*.7z binary
*.exe binary
*.dll binary
*.so binary
*.dylib binary
*.woff binary
*.woff2 binary
*.ttf binary
*.eot binary

# Git LFS — uncomment and run `git lfs install` + `git lfs track "<pattern>"`
# if this project stores large binaries in the repo.
# *.psd filter=lfs diff=lfs merge=lfs -text
# *.mp4 filter=lfs diff=lfs merge=lfs -text
# *.mov filter=lfs diff=lfs merge=lfs -text
# *.zip filter=lfs diff=lfs merge=lfs -text
# *.pdf filter=lfs diff=lfs merge=lfs -text

# GitHub Linguist — uncomment/adjust per-project to exclude generated or
# vendored code from language statistics and diffs.
# vendor/* linguist-vendored
# dist/* linguist-generated
