From 5e7b84bcc569826d842e76eccd2a0b2eac4add3f Mon Sep 17 00:00:00 2001 From: amrali-eg <32075105+amrali-eg@users.noreply.github.com> Date: Thu, 17 Sep 2026 22:24:17 +0300 Subject: [PATCH] Add .editorconfig; strip BOM from C# sources to match it LEN had no .editorconfig; EC's declares C# as utf-8 (no BOM), crlf. All 14 of LEN's tracked .cs files carried a BOM -- not mixed drift, LEN's actual standing convention, just undocumented. EC's 134 .cs files are 100% BOM-less by contrast. Adopting EC's declared rule required re-saving every .cs file BOM-less to match it. Each file lost exactly 3 bytes (the BOM) and nothing else; verified via byte-level diff before and after. Full suite 316/316 unaffected. Co-Authored-By: Claude Sonnet 5 --- .editorconfig | 21 +++++++++++++++++++ .../BomlessUtf32RefusalTests.cs | 2 +- .../LosslessFileWriterTests.cs | 2 +- .../ProgramEndToEndTests.cs | 2 +- .../BomlessUnicodeSafety.cs | 2 +- .../ConversionRefusedException.cs | 2 +- .../FilePatternMatcher.cs | 2 +- sources/LineEndingNormalizer/LineEnding.cs | 2 +- .../LosslessFileWriter.cs | 2 +- .../LineEndingNormalizer/NewLineNormalizer.cs | 2 +- sources/LineEndingNormalizer/Options.cs | 2 +- sources/LineEndingNormalizer/Program.cs | 2 +- sources/LineEndingNormalizer/TextEncoding.cs | 2 +- .../LineEndingNormalizer/TextValidation.cs | 2 +- .../LineEndingNormalizer/UnicodeDetector.cs | 2 +- 15 files changed, 35 insertions(+), 14 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..c9c9253 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,21 @@ +# .gitattributes settles what git stores; this settles what an editor writes. +# Git has no concept of encoding, so a byte-order mark is content it preserves +# rather than normalizes - which is how this repository ended up with both forms. + +root = true + +[*.cs] +charset = utf-8 +end_of_line = crlf +insert_final_newline = true + +# Windows PowerShell 5.1 treats BOM-less files as the system code page. +[*.ps1] +charset = utf-8-bom +end_of_line = crlf +insert_final_newline = true + +[*.{sh,bash}] +charset = utf-8 +end_of_line = lf +insert_final_newline = true diff --git a/sources/LineEndingNormalizer.Tests/BomlessUtf32RefusalTests.cs b/sources/LineEndingNormalizer.Tests/BomlessUtf32RefusalTests.cs index 1f5e732..f462a3c 100644 --- a/sources/LineEndingNormalizer.Tests/BomlessUtf32RefusalTests.cs +++ b/sources/LineEndingNormalizer.Tests/BomlessUtf32RefusalTests.cs @@ -1,4 +1,4 @@ -using System.Text; +using System.Text; namespace LineEndingNormalizer.Tests; diff --git a/sources/LineEndingNormalizer.Tests/LosslessFileWriterTests.cs b/sources/LineEndingNormalizer.Tests/LosslessFileWriterTests.cs index e11592d..f397f75 100644 --- a/sources/LineEndingNormalizer.Tests/LosslessFileWriterTests.cs +++ b/sources/LineEndingNormalizer.Tests/LosslessFileWriterTests.cs @@ -1,4 +1,4 @@ -using System.ComponentModel; +using System.ComponentModel; using System.Text; namespace LineEndingNormalizer.Tests; diff --git a/sources/LineEndingNormalizer.Tests/ProgramEndToEndTests.cs b/sources/LineEndingNormalizer.Tests/ProgramEndToEndTests.cs index 2b67b81..776fb50 100644 --- a/sources/LineEndingNormalizer.Tests/ProgramEndToEndTests.cs +++ b/sources/LineEndingNormalizer.Tests/ProgramEndToEndTests.cs @@ -1,4 +1,4 @@ -using System.Text; +using System.Text; namespace LineEndingNormalizer.Tests; diff --git a/sources/LineEndingNormalizer/BomlessUnicodeSafety.cs b/sources/LineEndingNormalizer/BomlessUnicodeSafety.cs index 8e49821..48824b1 100644 --- a/sources/LineEndingNormalizer/BomlessUnicodeSafety.cs +++ b/sources/LineEndingNormalizer/BomlessUnicodeSafety.cs @@ -1,4 +1,4 @@ -using System.Buffers; +using System.Buffers; using System.Text; namespace LineEndingNormalizer; diff --git a/sources/LineEndingNormalizer/ConversionRefusedException.cs b/sources/LineEndingNormalizer/ConversionRefusedException.cs index 59ed98a..1f6746b 100644 --- a/sources/LineEndingNormalizer/ConversionRefusedException.cs +++ b/sources/LineEndingNormalizer/ConversionRefusedException.cs @@ -1,4 +1,4 @@ -namespace LineEndingNormalizer; +namespace LineEndingNormalizer; /// /// Identifies a file that LEN deliberately left unchanged because conversion diff --git a/sources/LineEndingNormalizer/FilePatternMatcher.cs b/sources/LineEndingNormalizer/FilePatternMatcher.cs index 0416d13..46b241b 100644 --- a/sources/LineEndingNormalizer/FilePatternMatcher.cs +++ b/sources/LineEndingNormalizer/FilePatternMatcher.cs @@ -1,4 +1,4 @@ -using System.Text.RegularExpressions; +using System.Text.RegularExpressions; namespace LineEndingNormalizer; diff --git a/sources/LineEndingNormalizer/LineEnding.cs b/sources/LineEndingNormalizer/LineEnding.cs index 3ba0e77..fcb8b69 100644 --- a/sources/LineEndingNormalizer/LineEnding.cs +++ b/sources/LineEndingNormalizer/LineEnding.cs @@ -1,4 +1,4 @@ -namespace LineEndingNormalizer; +namespace LineEndingNormalizer; /// /// Supported output line-ending styles. diff --git a/sources/LineEndingNormalizer/LosslessFileWriter.cs b/sources/LineEndingNormalizer/LosslessFileWriter.cs index adb90a6..3ac5d66 100644 --- a/sources/LineEndingNormalizer/LosslessFileWriter.cs +++ b/sources/LineEndingNormalizer/LosslessFileWriter.cs @@ -1,4 +1,4 @@ -using System.Buffers; +using System.Buffers; using System.ComponentModel; using System.IO.Hashing; using System.Runtime.InteropServices; diff --git a/sources/LineEndingNormalizer/NewLineNormalizer.cs b/sources/LineEndingNormalizer/NewLineNormalizer.cs index f32b72a..7dd14f7 100644 --- a/sources/LineEndingNormalizer/NewLineNormalizer.cs +++ b/sources/LineEndingNormalizer/NewLineNormalizer.cs @@ -1,4 +1,4 @@ -namespace LineEndingNormalizer; +namespace LineEndingNormalizer; /// /// Detects encodings and normalizes line endings while preserving diff --git a/sources/LineEndingNormalizer/Options.cs b/sources/LineEndingNormalizer/Options.cs index 6c38a9c..c680652 100644 --- a/sources/LineEndingNormalizer/Options.cs +++ b/sources/LineEndingNormalizer/Options.cs @@ -1,4 +1,4 @@ -namespace LineEndingNormalizer; +namespace LineEndingNormalizer; /// /// Command-line options. diff --git a/sources/LineEndingNormalizer/Program.cs b/sources/LineEndingNormalizer/Program.cs index fbec55f..464dfb5 100644 --- a/sources/LineEndingNormalizer/Program.cs +++ b/sources/LineEndingNormalizer/Program.cs @@ -1,4 +1,4 @@ -using System.ComponentModel; +using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using System.Text; using System.Text.RegularExpressions; diff --git a/sources/LineEndingNormalizer/TextEncoding.cs b/sources/LineEndingNormalizer/TextEncoding.cs index 47f1090..8b50b4c 100644 --- a/sources/LineEndingNormalizer/TextEncoding.cs +++ b/sources/LineEndingNormalizer/TextEncoding.cs @@ -1,4 +1,4 @@ -using System.Text; +using System.Text; using System.Buffers; using UtfUnknown; diff --git a/sources/LineEndingNormalizer/TextValidation.cs b/sources/LineEndingNormalizer/TextValidation.cs index 4b9a090..99516e9 100644 --- a/sources/LineEndingNormalizer/TextValidation.cs +++ b/sources/LineEndingNormalizer/TextValidation.cs @@ -1,4 +1,4 @@ -using System.Buffers; +using System.Buffers; using System.Globalization; using System.Text; diff --git a/sources/LineEndingNormalizer/UnicodeDetector.cs b/sources/LineEndingNormalizer/UnicodeDetector.cs index 4ca50b0..26b9ce8 100644 --- a/sources/LineEndingNormalizer/UnicodeDetector.cs +++ b/sources/LineEndingNormalizer/UnicodeDetector.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Text; namespace LineEndingNormalizer;