-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Expand file tree
/
Copy path.swiftlint.yml
More file actions
136 lines (133 loc) · 3.58 KB
/
.swiftlint.yml
File metadata and controls
136 lines (133 loc) · 3.58 KB
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
125
126
127
128
129
130
131
132
133
134
135
136
# Directory and file filters
included:
- Plugins
- Source
- Tests
- Package.swift
excluded:
- assets
- Tests/BuiltInRulesTests/Resources
- Tests/FileSystemAccessTests/Resources
- Tests/IntegrationTests/Resources
# Enabled/disabled rules
analyzer_rules:
- unused_declaration
- unused_import
opt_in_rules:
- all
disabled_rules:
- anonymous_argument_in_multiline_closure
- conditional_returns_on_newline
- contrasted_opening_brace
- convenience_type
- discouraged_default_parameter
- discouraged_optional_collection
- explicit_acl
- explicit_enum_raw_value
- explicit_top_level_acl
- explicit_type_interface
- file_types_order
- force_unwrapping
- function_default_parameter_at_end
- indentation_width
- missing_docs
- multiline_arguments
- multiline_arguments_brackets
- multiline_call_arguments
- multiline_function_chains
- multiline_parameters_brackets
- no_extension_access_modifier
- no_grouping_extension
- no_magic_numbers
- one_declaration_per_file
- prefer_nimble
- prefixed_toplevel_constant
- required_deinit
- sorted_enum_cases
- strict_fileprivate
- switch_case_on_newline
- todo
- trailing_closure
- type_contents_order
- variable_shadowing
- vertical_whitespace_between_cases
# Configurations
attributes:
always_on_line_above:
- "@ConfigurationElement"
- "@OptionGroup"
- "@RuleConfigurationDescriptionBuilder"
balanced_xctest_lifecycle: &unit_test_configuration
test_parent_classes:
- SwiftLintTestCase
- XCTestCase
closure_body_length:
warning: 50
error: 100
empty_xctest_method: *unit_test_configuration
file_name:
excluded:
- Exports.swift
- Macros.swift
- Reporters+Register.swift
- Rules+Register.swift
- Rules+Template.swift
- RuleConfigurationMacros.swift
- SwiftSyntax+SwiftLint.swift
- TestHelpers.swift
excluded_paths:
- Tests/GeneratedTests/GeneratedTests_\d\d\.swift
- Tests/FileSystemAccessTests/.+\.swift
final_test_case: *unit_test_configuration
function_body_length: 60
identifier_name:
excluded:
- id
large_tuple: 3
number_separator:
minimum_length: 5
redundant_self:
keep_in_initializers: true
only_in_closures: false
redundant_type_annotation:
consider_default_literal_types_redundant: true
single_test_class: *unit_test_configuration
trailing_comma:
mandatory_comma: true
type_body_length:
warning: 400
excluded_types: []
unneeded_override:
affect_initializers: true
unused_import:
always_keep_imports:
- SwiftSyntaxBuilder # we can't detect uses of string interpolation of swift syntax nodes
- SwiftLintFramework # now that this is a wrapper around other modules, don't treat as unused
# Custom rules
custom_rules:
rule_id:
included: Source/SwiftLintBuiltInRules/Rules/.+/\w+\.swift
name: Rule ID
message: Rule IDs must be all lowercase, snake case and not end with `rule`
regex: ^\s+identifier:\s*("\w+_rule"|"\S*[^a-z_]\S*")
severity: error
fatal_error:
name: Fatal Error
excluded: "Tests/*"
message: Prefer `queuedFatalError` over `fatalError` to avoid leaking compiler host machine paths
regex: \bfatalError\b
match_kinds:
- identifier
severity: error
rule_test_function:
included: Tests/SwiftLintFrameworkTests/RulesTests.swift
name: Rule Test Function
message: Rule Test Function mustn't end with `rule`
regex: func\s*test\w+(r|R)ule\(\)
severity: error
testable_import:
included: Tests/TestHelpers/.+\.swift
name: Testable Import
message: Do not use @testable imports
regex: ^\s*@testable\s+import\s+\w+
severity: error