--swiftversion 6.1.2

# Excludes
#   ios/Sources/TaigiKeyboard/Engine/Generated   protobuf-generated *.pb.swift
#   ios/Sources/TaigiKeyboard/Strings/Generated  tools/i18n codegen output
#   ios/RustEngine                               swift-bridge FFI shim + xcframework
#   macos/… same three shapes for the macOS input method
#
# The Strings/Generated pair is not cosmetic: tools/i18n/check.py compares those files byte-for-byte
# against what the generator produces, so formatting them makes the tree permanently stale until the
# next `make i18n`. Codegen owns their layout; the formatter must not.
--exclude ios/Sources/TaigiKeyboard/Engine/Generated
--exclude ios/Sources/TaigiKeyboard/Strings/Generated
--exclude ios/RustEngine
--exclude macos/Sources/TaigiInputMethodCore/Engine/Generated
--exclude macos/Sources/TaigiInputMethodCore/DesktopCore/Generated
--exclude macos/Sources/TaigiInputMethodCore/Strings/Generated
--exclude macos/RustEngine
--exclude macos/.build
--exclude macos/target
--exclude ios/build
--exclude references

# Rules that rewrite declarations rather than lay them out. Each one changes
# tokens the compiler sees — a struct into an enum, a force-unwrap into an
# XCTUnwrap, an outlet's ownership, an inferred type — so a formatting pass
# could change behaviour. The project runs the formatter as a layout tool only;
# semantic rewrites are code changes and go through review on their own.
--disable docComments
--disable enumNamespaces
--disable extensionAccessControl
--disable noForceUnwrapInTests
--disable opaqueGenericParameters
--disable preferForLoop
--disable redundantFileprivate
--disable redundantPublic
--disable redundantSwiftUIGroup
--disable redundantThrows
--disable redundantType
--disable simplifyGenericConstraints
--disable strongOutlets
--disable unusedArguments
