# =============================================================================
# Line Ending Configuration
# =============================================================================
# This repository uses LF (Unix-style) line endings for all text files.
# Git will automatically normalize line endings to LF in the repository.
#
# Why LF?
# - Consistency across Windows, Mac, and Linux
# - Cleaner diffs (no spurious CRLF changes)
# - Required by most CI/CD systems and containers
#
# What this means for you:
# - Repository: All text files stored with LF
# - Your working directory: Can use CRLF (Windows) or LF (Mac/Linux)
# - Git handles the conversion automatically based on your system
#
# Recommended Git Configuration (optional, for advanced users):
# These settings are LOCAL to your machine and complement .gitattributes:
#
#   # Option A: Let Git convert (recommended for Windows users)
#   git config --global core.autocrlf true
#
#   # Option B: Use LF everywhere (for consistency purists)
#   git config --local core.autocrlf false
#   git config --local core.eol lf
#
# After cloning or changing config, run:
#   git add --renormalize .
#   git status  # Should show working tree clean
#
# =============================================================================

# Auto detect text files and normalize line endings to LF in the repo
* text=auto

# Source code
*.py text diff=python
*.pyi text diff=python
*.pyx text diff=python

# Configuration files
*.json text
*.toml text
*.yaml text
*.yml text
*.ini text
*.cfg text

# Documentation
*.md text
*.rst text
*.txt text

# Shell scripts
*.sh text eol=lf
*.bash text eol=lf

# Windows scripts
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf

# Claude Code settings
# Claude Code may rewrite this file on startup and writes LF on Windows,
# overriding the CRLF that git would normally check out. Force LF to prevent
# spurious line-ending-only diffs.
.claude/settings.local.json text eol=lf

# Git
.gitattributes text
.gitignore text
.gitmodules text

# CI/CD
.github/**/* text

# Binary files
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.pdf binary
*.woff binary
*.woff2 binary
*.ttf binary
*.eot binary
*.gz binary
*.zip binary
*.tar binary
*.pyc binary
*.pyd binary
*.so binary
*.dll binary
*.exe binary
