-
Notifications
You must be signed in to change notification settings - Fork 0
/
.swiftlint.yml
135 lines (134 loc) · 4.43 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
125
126
127
128
129
130
131
132
133
134
135
# Git URL : https://github.com/realm/SwiftLint
# Reference : https://realm.github.io/SwiftLint/index.html
# 린트 과정에서 무시할 파일 경로.
excluded:
- Pods/**
- momsnagging/Resources/Strings+Generated.swift
- momsnagging/Resources/Fonts+Generated.swift
- momsnagging/Resources/XCAssets+Generated.swift
included:
- momsnagging
analyzer_rules:
- unused_declaration
- unused_import
# 기본 규칙이 아닌 규칙들을 활성화
opt_in_rules:
- anyobject_protocol
- array_init
# @objc, @IBoutlet 에 엔터키 안하고 바로 붙여쓰도록 함 https://realm.github.io/SwiftLint/attributes.html
- attributes
- closure_end_indentation
- closure_spacing
- collection_alignment
- contains_over_first_not_nil
# string 빈문자열 체크시 "" 대신 isempty를 사용한다 https://realm.github.io/SwiftLint/empty_string.html
- empty_string
- empty_xctest_method
- explicit_init
- extension_access_modifier
- fallthrough
- file_header
- first_where
- identical_operands
- joined_default_parameter
# let var 이후에 한줄의 공백이 필요합니다 https://realm.github.io/SwiftLint/let_var_whitespace.html
- let_var_whitespace
- last_where
- literal_expression_end_indentation
# 하위의 접근제어는 상위의 접근제어보다 낮아야 합니다 (같아도 안됨) https://realm.github.io/SwiftLint/lower_acl_than_parent.html
- lower_acl_than_parent
- nimble_operator
# operation 사용시 양옆에 공백이 있어야 합니다. https://realm.github.io/SwiftLint/operator_whitespace.html
- operator_usage_whitespace
- overridden_super_call
- override_in_extension
- pattern_matching_keywords
- private_action
- private_outlet
- prohibited_interface_builder
- prohibited_super_call
- quick_discouraged_call
- quick_discouraged_focused_test
- quick_discouraged_pending_test
- redundant_nil_coalescing
- single_test_class
- sorted_first_last
- static_operator
# 구현되지 않은 기능은 사용할 수없는 것으로 표시해야합니다. https://realm.github.io/SwiftLint/unavailable_function.html
- unavailable_function
# 클로저 인수를 선언 할 때는 괄호가 필요하지 않습니다. https://realm.github.io/SwiftLint/unneeded_parentheses_in_closure_argument.html
- unneeded_parentheses_in_closure_argument
- untyped_error_in_catch
- vertical_parameter_alignment_on_call
- xct_specific_matcher
- yoda_condition
# 디폴트로 활성화되어있는 규칙 중 비활성화할 규칙을 정하는 키워드
disabled_rules:
# 추가한 rules
# fatal error는 메세지가 있어야합니다 https://realm.github.io/SwiftLint/fatal_error_message.html
- fatal_error_message
- function_body_length
- cyclomatic_complexity
- line_length
- todo
- orphaned_doc_comment
- empty_xctest_method
- redundant_type_annotation
- number_separator
- empty_count
#---------------------------
- object_literal
- file_name
- trailing_whitespace
- sorted_imports
- file_header
- vertical_whitespace_opening_braces
- vertical_whitespace_closing_braces
# Customized Configurable Rules
force_cast: error
nesting:
type_level:
warning: 3
statement_level:
warning: 5
# 변수나 클래스등 이름은 소문자, 대문자로 시작하며 너무길거나 짧으면 안됩니다. https://realm.github.io/SwiftLint/identifier_name.html
# 스위프트에서는 카멜케이스를 기본 명명법으로 사용하고 있습니다.
# Enum 타입명은 대문자로 시작하고, case는 소문자로 시작합니다.
identifier_name:
excluded:
- id
allowed_symbols: ["_"]
min_length:
warning: 1
function_parameter_count:
warning: 10
error: 20
type_body_length:
- 1000 # warning
- 1500 # error
file_length:
warning: 1000
error: 2000
# number_separator:
# minimum_length: 5
# file_name:
# excluded:
# - main.swift
# - LinuxMain.swift
# - TestHelpers.swift
# - shim.swift
# - AutomaticRuleTests.generated.swift
# Defining Custom Rules
custom_rules:
rule_id:
included: Source/SwiftLintFramework/Rules/.+/\w+\.swift
name: Rule ID
message: Rule IDs must be all lowercase, snake case and not end with `rule`
regex: identifier:\s*("\w+_rule"|"\S*[^a-z_]\S*")
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