Skip to content
This repository was archived by the owner on Oct 15, 2023. It is now read-only.

Commit 87d672b

Browse files
committed
Applying SwiftLint with Mint
1 parent f0b94de commit 87d672b

File tree

6 files changed

+205
-124
lines changed

6 files changed

+205
-124
lines changed

.swiftlint.yml

Lines changed: 164 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,170 @@
11
disabled_rules:
2-
- identifier_name
3-
- implicit_return
4-
- multiple_closures_with_trailing_closure
5-
- empty_enum_arguments
6-
- explicit_top_level_acl
7-
- conditional_returns_on_newline
8-
- closure_end_indentation
9-
- discouraged_optional_collection
10-
- explicit_enum_raw_value
11-
- explicit_type_interface
12-
- fatal_error_message
13-
- file_header
14-
- lower_acl_than_parent
15-
- no_extension_access_modifier
16-
- no_grouping_extension
17-
- multiline_arguments
18-
- strict_fileprivate
19-
- switch_case_on_newline
20-
- trailing_closure
21-
- large_tuple
22-
- explicit_acl
23-
- attributes
24-
- let_var_whitespace
2+
- attributes
3+
- array_init
4+
- closure_body_length
5+
- conditional_returns_on_newline
6+
- cyclomatic_complexity
7+
- discouraged_optional_boolean
8+
- discouraged_optional_collection
9+
- explicit_acl
10+
- explicit_enum_raw_value
11+
- explicit_top_level_acl
12+
- explicit_type_interface
13+
- extension_access_modifier
14+
- fatal_error_message
15+
- file_header
16+
- file_types_order
17+
- file_length
18+
- function_body_length
19+
- function_default_parameter_at_end
20+
- function_parameter_count
21+
- indentation_width
22+
- implicit_return
23+
- lower_acl_than_parent
24+
- no_extension_access_modifier
25+
- no_grouping_extension
26+
- number_separator
27+
- missing_docs
28+
- modifier_order
29+
- multiline_arguments
30+
- multiple_closures_with_trailing_closure
31+
- multiline_arguments_brackets
32+
- multiline_parameters_brackets
33+
- object_literal
34+
- operator_usage_whitespace
35+
- pattern_matching_keywords
36+
- private_action
37+
- private_outlet
38+
- prefixed_toplevel_constant
39+
- prohibited_interface_builder
40+
- raw_value_for_camel_cased_codable_enum
41+
- required_deinit
42+
- sorted_imports
43+
- strict_fileprivate
44+
- strong_iboutlet
45+
- switch_case_on_newline
46+
- trailing_whitespace
47+
- trailing_closure
48+
- type_contents_order
49+
- todo
50+
- unavailable_function
51+
- unneeded_parentheses_in_closure_argument
52+
- unused_setter_value
53+
- xctfail_message
54+
- xct_specific_matcher
55+
- line_length
56+
- force_unwrapping
57+
- let_var_whitespace
58+
- file_name
2559

2660
opt_in_rules:
27-
- array_init
28-
- attributes
29-
- closure_end_indentation
30-
- closure_spacing
31-
- conditional_returns_on_newline
32-
- contains_over_first_not_nil
33-
- discouraged_object_literal
34-
- discouraged_optional_boolean
35-
- discouraged_optional_collection
36-
- empty_count
37-
- empty_string
38-
- explicit_acl
39-
- explicit_enum_raw_value
40-
- explicit_init
41-
- explicit_top_level_acl
42-
- explicit_type_interface
43-
- extension_access_modifier
44-
- fatal_error_message
45-
- file_header
46-
- first_where
47-
- force_unwrapping
48-
- implicit_return
49-
- implicitly_unwrapped_optional
50-
- joined_default_parameter
51-
- let_var_whitespace
52-
- literal_expression_end_indentation
53-
- multiline_arguments
54-
- multiline_parameters
55-
- nimble_operator
56-
- no_extension_access_modifier
57-
- no_grouping_extension
58-
- number_separator
59-
- object_literal
60-
- operator_usage_whitespace
61-
- overridden_super_call
62-
- override_in_extension
63-
- pattern_matching_keywords
64-
- prefixed_toplevel_constant
65-
- private_action
66-
- private_outlet
67-
- prohibited_super_call
68-
- quick_discouraged_call
69-
- quick_discouraged_focused_test
70-
- quick_discouraged_pending_test
71-
- redundant_nil_coalescing
72-
- required_enum_case
73-
- single_test_class
74-
- sorted_first_last
75-
- sorted_imports
76-
- strict_fileprivate
77-
- switch_case_on_newline
78-
- trailing_closure
79-
- unneeded_parentheses_in_closure_argument
80-
- untyped_error_in_catch
81-
- vertical_parameter_alignment_on_call
82-
- yoda_condition
61+
- anyobject_protocol
62+
- array_init
63+
- attributes
64+
- closure_body_length
65+
- closure_end_indentation
66+
- closure_spacing
67+
- collection_alignment
68+
- conditional_returns_on_newline
69+
- contains_over_filter_count
70+
- contains_over_filter_is_empty
71+
- contains_over_first_not_nil
72+
- contains_over_range_nil_comparison
73+
- convenience_type
74+
- discouraged_object_literal
75+
- discouraged_optional_boolean
76+
- discouraged_optional_collection
77+
- empty_collection_literal
78+
- empty_count
79+
- empty_string
80+
- empty_xctest_method
81+
- enum_case_associated_values_count
82+
- expiring_todo
83+
- explicit_acl
84+
- explicit_enum_raw_value
85+
- explicit_init
86+
- explicit_self
87+
- explicit_top_level_acl
88+
- explicit_type_interface
89+
- extension_access_modifier
90+
- fallthrough
91+
- fatal_error_message
92+
- file_header
93+
- file_name
94+
- file_name_no_space
95+
- file_types_order
96+
- first_where
97+
- flatmap_over_map_reduce
98+
- force_unwrapping
99+
- function_default_parameter_at_end
100+
- identical_operands
101+
- implicit_return
102+
- implicitly_unwrapped_optional
103+
- indentation_width
104+
- joined_default_parameter
105+
- last_where
106+
- legacy_multiple
107+
- legacy_random
108+
- let_var_whitespace
109+
- literal_expression_end_indentation
110+
- lower_acl_than_parent
111+
- missing_docs
112+
- modifier_order
113+
- multiline_arguments
114+
- multiline_arguments_brackets
115+
- multiline_function_chains
116+
- multiline_literal_brackets
117+
- multiline_parameters
118+
- multiline_parameters_brackets
119+
- nimble_operator
120+
- no_extension_access_modifier
121+
- no_grouping_extension
122+
- nslocalizedstring_key
123+
- nslocalizedstring_require_bundle
124+
- number_separator
125+
- object_literal
126+
- operator_usage_whitespace
127+
- optional_enum_case_matching
128+
- overridden_super_call
129+
- override_in_extension
130+
- pattern_matching_keywords
131+
- prefer_self_type_over_type_of_self
132+
- prefixed_toplevel_constant
133+
- private_action
134+
- private_outlet
135+
- prohibited_interface_builder
136+
- prohibited_super_call
137+
- quick_discouraged_call
138+
- quick_discouraged_focused_test
139+
- quick_discouraged_pending_test
140+
- raw_value_for_camel_cased_codable_enum
141+
- reduce_into
142+
- redundant_nil_coalescing
143+
- redundant_type_annotation
144+
- required_deinit
145+
- required_enum_case
146+
- single_test_class
147+
- sorted_first_last
148+
- sorted_imports
149+
- static_operator
150+
- strict_fileprivate
151+
- strong_iboutlet
152+
- switch_case_on_newline
153+
- toggle_bool
154+
- trailing_closure
155+
- type_contents_order
156+
- unavailable_function
157+
- unneeded_parentheses_in_closure_argument
158+
- unowned_variable_capture
159+
- untyped_error_in_catch
160+
- unused_declaration
161+
- unused_import
162+
- vertical_parameter_alignment_on_call
163+
- vertical_whitespace_between_cases
164+
- vertical_whitespace_closing_braces
165+
- vertical_whitespace_opening_braces
166+
- xct_specific_matcher
167+
- yoda_condition
83168

84169
included:
85170
- ImageTransition
@@ -88,37 +173,6 @@ included:
88173
# Lint対象から除外するパス
89174
excluded:
90175

91-
line_length:
92-
- 200 # warning
93-
- 300 # error
94-
95-
type_body_length:
96-
- 400 # warning
97-
- 600 # error
98-
99-
file_length:
100-
- 500 # warning
101-
- 1000 # error
102-
103-
function_body_length:
104-
- 100 # warning
105-
- 200 # error
106-
107-
type_name:
108-
min_length: 3
109-
max_length:
110-
warning: 40
111-
error: 50
112-
excluded:
113-
114-
identifier_name:
115-
min_length: # only min_length
116-
error: 2 # only error
117-
excluded: # excluded via string array
118-
- id
119-
- URL
120-
reporter: "xcode"
121-
122176
custom_rules:
123177
final_class:
124178
included: "./.*\\.swift"

ImageTransition.xcodeproj/project.pbxproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@
340340
);
341341
runOnlyForDeploymentPostprocessing = 0;
342342
shellPath = /bin/sh;
343-
shellScript = "if which swiftlint >/dev/null; then\n swiftlint\n swiftlint autocorrect\nelse\n echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n";
343+
shellScript = "if [ \"${CONFIGURATION}\" = \"Debug\" ]; then\n xcrun --sdk macosx mint run swiftlint autocorrect --format\n xcrun --sdk macosx mint run swiftlint\nfi\n";
344344
};
345345
/* End PBXShellScriptBuildPhase section */
346346

ImageTransition/ImageTransitionDelegate.swift

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ public final class ImageTransitionDelegate: NSObject {
2424
}
2525

2626
extension ImageTransitionDelegate: UIViewControllerTransitioningDelegate {
27-
public func animationController(forPresented presented: UIViewController,
28-
presenting: UIViewController,
29-
source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
27+
public func animationController(
28+
forPresented presented: UIViewController,
29+
presenting: UIViewController,
30+
source: UIViewController
31+
) -> UIViewControllerAnimatedTransitioning? {
3032
ImageTransitioning(duration: presentDuration, animationOptions: presentAnimationOptions)
3133
}
3234

@@ -36,17 +38,22 @@ extension ImageTransitionDelegate: UIViewControllerTransitioningDelegate {
3638
}
3739

3840
extension ImageTransitionDelegate: UINavigationControllerDelegate {
39-
public func navigationController(_ navigationController: UINavigationController,
40-
animationControllerFor operation: UINavigationController.Operation,
41-
from fromVC: UIViewController,
42-
to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
41+
public func navigationController(
42+
_ navigationController: UINavigationController,
43+
animationControllerFor operation: UINavigationController.Operation,
44+
from fromVC: UIViewController,
45+
to toVC: UIViewController
46+
) -> UIViewControllerAnimatedTransitioning? {
4347
switch operation {
4448
case .none:
4549
return nil
50+
4651
case .pop:
4752
return ImageTransitioning(duration: popDuration, animationOptions: popAnimationOptions)
53+
4854
case .push:
4955
return ImageTransitioning(duration: pushDuration, animationOptions: pushAnimationOptions)
56+
5057
@unknown default:
5158
fatalError()
5259
}

ImageTransition/ImageTransitioning.swift

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,30 @@ internal final class ImageTransitioning: NSObject, UIViewControllerAnimatedTrans
2222
}
2323

2424
internal func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
25-
guard let fromVC = transitionContext.viewController(forKey: .from) else { assertionFailure("fromVC is nil"); return }
26-
guard let toVC = transitionContext.viewController(forKey: .to) else { assertionFailure("toVC is nil"); return }
27-
guard let fromImageView = (fromVC as? ImageTransitionable)?.imageViewForTransition else { assertionFailure("fromImageView is nil"); return }
28-
guard let toImageView = (toVC as? ImageTransitionable)?.imageViewForTransition else { assertionFailure("toImageView is nil"); return }
29-
guard let fromImage = fromImageView.image else { assertionFailure("fromImage is nil"); return }
30-
guard let toImage = toImageView.image else { assertionFailure("toImage is nil"); return }
25+
guard let fromVC = transitionContext.viewController(forKey: .from) else {
26+
assertionFailure("fromVC is nil")
27+
return
28+
}
29+
guard let toVC = transitionContext.viewController(forKey: .to) else {
30+
assertionFailure("toVC is nil")
31+
return
32+
}
33+
guard let fromImageView = (fromVC as? ImageTransitionable)?.imageViewForTransition else {
34+
assertionFailure("fromImageView is nil")
35+
return
36+
}
37+
guard let toImageView = (toVC as? ImageTransitionable)?.imageViewForTransition else {
38+
assertionFailure("toImageView is nil")
39+
return
40+
}
41+
guard let fromImage = fromImageView.image else {
42+
assertionFailure("fromImage is nil")
43+
return
44+
}
45+
guard let toImage = toImageView.image else {
46+
assertionFailure("toImage is nil")
47+
return
48+
}
3149

3250
// Use image with larger size
3351
let movingView = UIImageView(image: fromImage.largerCompared(with: toImage))

ImageTransition/UIImageView+.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ internal extension UIImageView {
1515
switch contentMode {
1616
case .scaleAspectFit:
1717
return AVMakeRect(aspectRatio: image.size, insideRect: bounds).size
18+
1819
default:
1920
return bounds.size
2021
}

Mintfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

0 commit comments

Comments
 (0)