# EditorConfig helps maintain consistent coding styles across different editors and IDEs
# See https://editorconfig.org for more information

root = true

# Default settings for all files
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 4

# Python files
[*.py]
indent_size = 4
max_line_length = 100

# YAML files
[*.{yml,yaml}]
indent_size = 2

# JSON files
[*.json]
indent_size = 2

# JavaScript/TypeScript files
[*.{js,jsx,ts,tsx}]
indent_size = 2

# HTML files
[*.html]
indent_size = 2

# CSS/SCSS files
[*.{css,scss,sass,less}]
indent_size = 2

# Markdown files
[*.md]
trim_trailing_whitespace = false
max_line_length = off

# Shell scripts
[*.sh]
indent_size = 2

# Makefiles
[Makefile]
indent_style = tab

# Configuration files
[{package.json,*.config.js}]
indent_size = 2

# reStructuredText files
[*.rst]
indent_size = 3

# TOML files
[*.toml]
indent_size = 2

# INI files
[*.ini]
indent_size = 2

# Batch files
[*.{bat,cmd}]
end_of_line = crlf

# Git files
[.gitattributes]
indent_size = 2

[.gitignore]
indent_size = 2

# Docker files
[Dockerfile*]
indent_size = 2

# XML files
[*.xml]
indent_size = 2

# R files
[*.{r,R}]
indent_size = 2

# LaTeX files
[*.tex]
indent_size = 2

# BibTeX files
[*.bib]
indent_size = 2

# Rust files (if needed)
[*.rs]
indent_size = 4
max_line_length = 100

# Elixir files (if needed)
[*.{ex,exs}]
indent_size = 2
max_line_length = 120

# ReScript files (if needed)
[*.res]
indent_size = 2
max_line_length = 100
