chore: enforce LF line endings via gitattributes, editorconfig, pre-commit

Introduces a three-layer defence against CRLF/LF drift:

- `.gitattributes` normalizes all text files to LF on commit and checkout;
  Windows-native scripts (*.bat, *.cmd, *.ps1) explicitly keep CRLF.
- `.editorconfig` instructs editors (VS Code, JetBrains, vim, etc.) to save
  with LF by default so the problem is prevented at the source.
- `mixed-line-ending --fix=lf` hook in pre-commit catches anything that
  slips through and auto-fixes it before commit.

No file contents are normalized in this commit — that follows in a
separate `git add --renormalize .` commit for easier review.
This commit is contained in:
Eugene Mikhantyev
2026-04-18 15:20:20 +01:00
parent 03bafce616
commit 2c35ff40a7
3 changed files with 74 additions and 0 deletions

21
.editorconfig Normal file
View File

@@ -0,0 +1,21 @@
root = true
[*]
end_of_line = lf
charset = utf-8
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 4
[*.{ts,tsx,js,jsx,mjs,cjs,json,yml,yaml,md,html,css}]
indent_size = 2
[*.md]
trim_trailing_whitespace = false
[*.{bat,cmd,ps1}]
end_of_line = crlf
[Makefile]
indent_style = tab