# EditorConfig Specification: https://EditorConfig.org root = true # Universal Defaults [*] charset = utf-8 end_of_line = lf indent_size = 2 indent_style = space insert_final_newline = true trim_trailing_whitespace = true # Markdown & Documentation [*.md] trim_trailing_whitespace = false # Ansible & YAML Configuration [*.{yml,yaml}] indent_size = 2 indent_style = space # Infrastructure as Code (OpenTofu / Terraform) [*.{tf,tfvars,tofu}] indent_size = 2 indent_style = space # JSON Data Files [*.json] indent_size = 2 indent_style = space # Rust (Rust standard mandates 4 spaces) [*.rs] indent_size = 4 indent_style = space # Python [*.py] indent_size = 4 indent_style = space # Perl [*.{pl,pm,t,pod}] indent_size = 4 indent_style = space # Systems Programming (C, C++, Headers, eBPF) [*.{c,cc,cpp,cxx,h,hh,hpp,hxx,bpf.c,bpf.h}] indent_size = 4 indent_style = space # Low-Level Assembly (x86_64, aarch64, riscv, Linker Scripts) [*.{s,S,asm,ld,lds}] indent_style = tab indent_size = 8 # Device Tree (Linux Kernel Hardware Trees) [*.{dts,dtsi}] indent_style = tab indent_size = 8 # Parser & Lexer Grammars (Bison / Flex / Yacc) [*.{y,l,yy,ll}] indent_style = tab indent_size = 8 # Linux Kernel Kconfig / Kbuild [{Kconfig*,Kbuild*,*.kconfig}] indent_style = tab indent_size = 8 # Makefiles & Build Systems (Hard tabs mandated by spec) [{Makefile*,*.mk}] indent_style = tab # AWK & Sed Scripts [*.{awk,sed}] indent_size = 4 indent_style = space # Java [*.java] indent_size = 4 indent_style = space # Go (Golang standard enforces hardware tabs) [*.go] indent_style = tab indent_size = 4 # PHP [*.php] indent_size = 4 indent_style = space # UNIX / POSIX Shells (Bash, Sh, Ksh, Csh, Tcsh, Zsh) [*.{sh,bash,ksh,csh,tcsh,zsh}] indent_size = 2 indent_style = space # Windows PowerShell & Batch Scripts [*.{ps1,psm1,psd1}] indent_size = 4 indent_style = space [*.{bat,cmd}] end_of_line = crlf indent_size = 2 indent_style = space