Skip to content
  •  
  •  
  •  
112 changes: 112 additions & 0 deletions .swiftformat
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# SwiftFormat Configuration for Palace Project
# https://github.com/nicklockwood/SwiftFormat

# Include/exclude paths
--exclude Carthage,readium-sdk,readium-shared-js,adept-ios,adobe-content-filter,adobe-rmsdk,ios-tenprintcover,mobile-bookmark-spec,build,DerivedData,fastlane,scripts
--exclude "*.generated.swift"

# Formatting rules
--rules blankLinesAroundMark
--rules blankLinesAtEndOfScope
--rules blankLinesAtStartOfScope
--rules blankLinesBetweenScopes
--rules braces
--rules conditionalAssignment
--rules consecutiveBlankLines
--rules consecutiveSpaces
--rules duplicateImports
--rules elseOnSameLine
--rules emptyBraces
--rules enumNamespaces
--rules extensionAccessControl
--rules hoistPatternLet
--rules indent
--rules initCoderUnavailable
--rules leadingDelimiters
--rules linebreakAtEndOfFile
--rules markTypes
--rules modifierOrder
--rules numberFormatting
--rules preferKeyPath
--rules redundantBackticks
--rules redundantBreak
--rules redundantExtensionACL
--rules redundantFileprivate
--rules redundantGet
--rules redundantInit
--rules redundantLet
--rules redundantLetError
--rules redundantNilInit
--rules redundantObjc
--rules redundantParens
--rules redundantPattern
--rules redundantRawValues
--rules redundantReturn
--rules redundantSelf
--rules redundantType
--rules redundantVoidReturnType
--rules semicolons
--rules sortImports
--rules spaceAroundBraces
--rules spaceAroundBrackets
--rules spaceAroundComments
--rules spaceAroundGenerics
--rules spaceAroundOperators
--rules spaceAroundParens
--rules spaceInsideBraces
--rules spaceInsideBrackets
--rules spaceInsideComments
--rules spaceInsideGenerics
--rules spaceInsideParens
--rules strongOutlets
--rules strongifiedSelf
--rules todos
--rules trailingClosures
--rules trailingCommas
--rules trailingSpace
--rules typeSugar
--rules unusedArguments
--rules void
--rules wrap
--rules wrapArguments
--rules wrapAttributes
--rules wrapConditionalBodies
--rules wrapEnumCases
--rules wrapMultilineStatementBraces

# Configuration options
--indent 2
--tabwidth 2
--maxwidth 120
--wraparguments before-first
--wrapcollections before-first
--wrapparameters before-first
--closingparen balanced
--commas always
--trimwhitespace always
--insertlines true
--removelines true
--allman false
--fractiongrouping disabled
--exponentgrouping disabled
--decimalgrouping 3,6
--binarygrouping 4,8
--octalgrouping 4,8
--hexgrouping 4,8
--ifdef no-indent
--xcodeindentation disabled
--importgrouping testable-bottom
--self remove
--selfrequired
--stripunusedargs always
--shortoptionals always
--ranges spaced
--operatorfunc spaced
--nospaceoperators ...,..<
--nowrapoperators
--assetliterals visual-width
--yodaswap always

# Swift version and SwiftUI specific
--swiftversion 5.9
--enable wrapMultilineStatementBraces
80 changes: 80 additions & 0 deletions .swiftlint-migration.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# SwiftLint Migration Configuration for Palace Project
# This is a more lenient configuration for gradual adoption

# Paths to include for linting
included:
- Palace
- PalaceTests
- PalaceUIKit
- ios-audiobooktoolkit/PalaceAudiobookToolkit
- ios-audiobooktoolkit/PalaceAudiobookToolkitTests
- ios-audiobook-overdrive/OverdriveProcessor

# Paths to exclude from linting
excluded:
- Carthage
- readium-sdk
- readium-shared-js
- adept-ios
- adobe-content-filter
- adobe-rmsdk
- ios-tenprintcover
- mobile-bookmark-spec
- build
- DerivedData
- fastlane
- scripts
- "*.generated.swift"

# Start with only the most critical rules
disabled_rules:
- todo
- line_length
- function_body_length
- type_body_length
- file_length
- cyclomatic_complexity
- function_parameter_count
- opening_brace # Common formatting issue - fix with SwiftFormat
- trailing_closure # Style preference - can be ignored initially
- unused_optional_binding # Not critical for functionality

# Focus on critical opt-in rules only
opt_in_rules:
- empty_string
- force_unwrapping # Critical for crash prevention
- implicitly_unwrapped_optional # Critical for crash prevention
- legacy_random
- redundant_nil_coalescing
- unused_import

# More lenient configurations
line_length:
warning: 150
error: 200
ignores_urls: true
ignores_function_declarations: true
ignores_comments: true

function_body_length:
warning: 100
error: 200

type_body_length:
warning: 500
error: 1000

file_length:
warning: 1000
error: 2000
ignore_comment_only_lines: true

cyclomatic_complexity:
warning: 25
error: 50

# Set a much higher warning threshold for migration
warning_threshold: 500

# Custom reporter
reporter: "xcode"
80 changes: 80 additions & 0 deletions .swiftlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# SwiftLint Migration Configuration for Palace Project
# This is a more lenient configuration for gradual adoption

# Paths to include for linting
included:
- Palace
- PalaceTests
- PalaceUIKit
- ios-audiobooktoolkit/PalaceAudiobookToolkit
- ios-audiobooktoolkit/PalaceAudiobookToolkitTests
- ios-audiobook-overdrive/OverdriveProcessor

# Paths to exclude from linting
excluded:
- Carthage
- readium-sdk
- readium-shared-js
- adept-ios
- adobe-content-filter
- adobe-rmsdk
- ios-tenprintcover
- mobile-bookmark-spec
- build
- DerivedData
- fastlane
- scripts
- "*.generated.swift"

# Start with only the most critical rules
disabled_rules:
- todo
- line_length
- function_body_length
- type_body_length
- file_length
- cyclomatic_complexity
- function_parameter_count
- opening_brace # Common formatting issue - fix with SwiftFormat
- trailing_closure # Style preference - can be ignored initially
- unused_optional_binding # Not critical for functionality

# Focus on critical opt-in rules only
opt_in_rules:
- empty_string
- force_unwrapping # Critical for crash prevention
- implicitly_unwrapped_optional # Critical for crash prevention
- legacy_random
- redundant_nil_coalescing
- unused_import

# More lenient configurations
line_length:
warning: 150
error: 200
ignores_urls: true
ignores_function_declarations: true
ignores_comments: true

function_body_length:
warning: 100
error: 200

type_body_length:
warning: 500
error: 1000

file_length:
warning: 1000
error: 2000
ignore_comment_only_lines: true

cyclomatic_complexity:
warning: 25
error: 50

# Set a much higher warning threshold for migration
warning_threshold: 500

# Custom reporter
reporter: "xcode"
Loading