# Stream rules
--header "\nCopyright © {year} Stream.io Inc. All rights reserved.\n"
--swiftversion 5.9

--ifdef no-indent
--disable redundantType
--disable extensionAccessControl
--disable andOperator
--disable hoistPatternLet
--disable typeSugar

--disable redundantGet # it removes get async throws from getters

# Rules inferred from Swift Standard Library:
--disable anyObjectProtocol, wrapMultilineStatementBraces
--indent 4
--enable isEmpty
--disable redundantParens # it generates mistakes for e.g. "if (a || b), let x = ... {}"
--semicolons inline
--nospaceoperators ..., ..< # what about ==, +=?
--commas inline
--trimwhitespace nonblank-lines
--stripunusedargs closure-only

--binarygrouping 4,7
--octalgrouping none
--hexgrouping none
--fractiongrouping disabled
--exponentgrouping disabled
--hexliteralcase lowercase
--exponentcase lowercase

--wraparguments before-first
--wrapparameters before-first
--wrapcollections before-first

# Exclude paths
--exclude Sources/StreamChatSwiftUI/Generated,Sources/StreamChatSwiftUI/StreamSwiftyGif,Sources/StreamChatSwiftUI/StreamNuke
