From eafdc6e7f9529154f9f33ff33a05b86be82b2c42 Mon Sep 17 00:00:00 2001 From: Pieter Viljoen Date: Sun, 5 Jul 2026 13:42:55 -0700 Subject: [PATCH 1/2] Add the global editorconfig CRLF default (#242) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds `end_of_line = crlf` to the `.editorconfig` `[*]` block so every file type has a defined ending (matching the fleet template) instead of the per-extension-only form. Per-type CRLF rules and `.gitattributes` LF pins unchanged. Resolves the recurring line-ending drift from the ProjectTemplate audit (`reports/languagetags/audit.md`), via the audit convergence pattern (`AUDIT.md` section 10). 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Signed-off-by: Pieter Viljoen Co-authored-by: Claude Opus 4.8 (1M context) --- .editorconfig | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.editorconfig b/.editorconfig index 7e3660b..089d752 100644 --- a/.editorconfig +++ b/.editorconfig @@ -16,6 +16,7 @@ root = true # Defaults [*] charset = utf-8 +end_of_line = crlf indent_size = 4 indent_style = space insert_final_newline = true @@ -44,6 +45,10 @@ end_of_line = crlf [*.sh] end_of_line = lf +# Husky git hook is an extensionless shell script - LF like other scripts (matches the .gitattributes pin) +[.husky/pre-commit] +end_of_line = lf + # Dockerfiles - CRLF breaks RUN heredocs and line continuations [{Dockerfile,*.Dockerfile}] end_of_line = lf @@ -52,6 +57,13 @@ end_of_line = lf [*.{cmd,bat,ps1}] end_of_line = crlf +# Downloaded language data - preserve the source bytes exactly; enforce no editor normalization +[LanguageData/*] +charset = unset +end_of_line = unset +insert_final_newline = false +trim_trailing_whitespace = false + # --- .NET-only below: C# and ReSharper style. Everything above is line-ending governance. --- # C# files From 701dd6a6173d6a580ec04b664ef7a6906cca501e Mon Sep 17 00:00:00 2001 From: Pieter Viljoen Date: Sun, 5 Jul 2026 14:09:23 -0700 Subject: [PATCH 2/2] Match the whole LanguageData tree in the editorconfig byte-preserve rule (#244) Use the recursive [LanguageData/**] glob so the no-normalization override covers the iso6392/, iso6393/, rfc5646/, and unm49/ subtrees, matching the * -text gitattributes contract. --- .editorconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index 089d752..396b654 100644 --- a/.editorconfig +++ b/.editorconfig @@ -58,7 +58,7 @@ end_of_line = lf end_of_line = crlf # Downloaded language data - preserve the source bytes exactly; enforce no editor normalization -[LanguageData/*] +[LanguageData/**] charset = unset end_of_line = unset insert_final_newline = false