diff --git a/.swiftlint.yml b/.swiftlint.yml index 1397026..39828f2 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -5,10 +5,18 @@ # build plus test ships with the engine package. opt_in_rules: - force_unwrapping + # Adopted from the canonical rules-swift opt-in set. + - empty_count + - explicit_init + - first_where + - sorted_first_last + - unused_import disabled_rules: # Suggests Foundation's String(bytes:encoding:); PureXML is Foundation-free, so # String(decoding:as:) from the standard library is the correct conversion. - optional_data_string_conversion + # rules-swift disables todo; PureXML tracks TODOs in issues, not the linter. + - todo excluded: - .build - DerivedData diff --git a/docs/rules/README.md b/docs/rules/README.md index ad22984..2b98343 100644 --- a/docs/rules/README.md +++ b/docs/rules/README.md @@ -25,6 +25,11 @@ Project-specific overrides: The broader rule files are retained for detailed guidance. When they include generic examples, apply the PureXML-specific overrides above. -Canonical Swift rules live at `/Volumes/Code/DeveloperExt/private/rules-swift` +Canonical Swift rules live at `/Volumes/Code/DeveloperExt/public/rules-swift` (especially `validation-rules.md` and `parsing-rules.md`). Prefer that source -when `docs/rules/` copies drift. +when `docs/rules/` copies drift. PureXML's committed `.swiftlint.yml` and +`.swiftformat` are the coherent project tuning of that canon: they adopt its +opt-in rule set and shared formatter directives, keep stricter safety +(`force_unwrapping`/`force_try`/`force_cast` = error), and resolve the canon's +`--commas always` vs default-`trailing_comma` mismatch by mandating trailing +commas in both tools.