-
Notifications
You must be signed in to change notification settings - Fork 113
/
.swiftlint.yml
124 lines (93 loc) · 3.47 KB
/
.swiftlint.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
swiftlint_version: 0.54.0
excluded:
- DerivedData
- fastlane
- Pods
- Scripts
# Automattic's CI caching setup may generate this in the project folder
- Users/builder/Library/Caches/CocoaPods/Pods
- vendor
# Rules – Opt-in only, so we can progressively introduce new ones
#
only_rules:
# Colons should be next to the identifier when specifying a type.
- colon
# There should be no space before and one after any comma.
- comma
# if,for,while,do statements shouldn't wrap their conditionals in parentheses.
- control_statement
- discarded_notification_center_observer
- duplicate_imports
# Arguments can be omitted when matching enums with associated types if they
# are not used.
- empty_enum_arguments
# Prefer `() -> ` over `Void -> `.
- empty_parameters
- line_length
# MARK comment should be in valid format.
- mark
# Opening braces should be preceded by a single space and on the same line as
# the declaration.
- opening_brace
- overridden_super_call
# Files should have a single trailing newline.
- trailing_newline
# Lines should not have trailing semicolons.
- trailing_semicolon
# Lines should not have trailing whitespace.
- trailing_whitespace
- vertical_whitespace
- weak_delegate
- custom_rules
# Rules configuration
#
control_statement:
severity: error
discarded_notification_center_observer:
severity: error
line_length: 163 # Max line length at the time of setup
overridden_super_call:
severity: error
trailing_whitespace:
ignores_empty_lines: false
ignores_comments: false
vertical_whitespace:
max_empty_lines: 3
severity: error
weak_delegate:
severity: error
excluded: .*Tests/.*
# Custom rules
#
custom_rules:
natural_content_alignment:
name: "Natural Content Alignment"
regex: '\.contentHorizontalAlignment(\s*)=(\s*)(\.left|\.right)'
message: "Forcing content alignment left or right can affect the Right-to-Left layout. Use naturalContentHorizontalAlignment instead."
severity: warning
natural_text_alignment:
name: "Natural Text Alignment"
regex: '\.textAlignment(\s*)=(\s*).left'
message: "Forcing text alignment to left can affect the Right-to-Left layout. Consider setting it to `natural`"
severity: warning
inverse_text_alignment:
name: "Inverse Text Alignment"
regex: '\.textAlignment(\s*)=(\s*).right'
message: "When forcing text alignment to the right, be sure to handle the Right-to-Left layout case properly, and then silence this warning with this line `// swiftlint:disable:next inverse_text_alignment`"
severity: warning
localization_comment:
name: "Localization Comment"
regex: 'NSLocalizedString\([^,]+,\s*+comment:\s""\)'
message: "Localized strings should include a description giving context for how the string is used."
severity: warning
excluded: .*Tests/.* # We might want to remove this and add comments to tests, too
string_interpolation_in_localized_string:
name: "String Interpolation in Localized String"
regex: 'NSLocalizedString\("[^"]*\\\(\S*\)'
message: "Localized strings must not use interpolated variables. Instead, use `String(format:`"
severity: error
swiftui_localization:
name: "SwiftUI Localization"
regex: 'LocalizedStringKey'
message: "Using `LocalizedStringKey` is incompatible with our tooling and doesn't allow you to provide a hint/context comment for translators either. Please use `NSLocalizedString` instead, even with SwiftUI code."
severity: error