Skip to content

Instantly share code, notes, and snippets.

@shsw228
Last active February 20, 2022 20:22
Show Gist options
  • Save shsw228/a1af4698fca562db3fba1fe560286488 to your computer and use it in GitHub Desktop.
Save shsw228/a1af4698fca562db3fba1fe560286488 to your computer and use it in GitHub Desktop.
swiftlintのデフォルトルール
# document: https://github.com/realm/SwiftLint
# デフォルト有効で任意に無効化
disabled_rules:
# - block_based_kvo
# - class_delegate_protocol
# - closing_brace
# - closure_parameter_position
# - colon
# - comma
# - comment_spacing
# - compiler_protocol_init
# - computed_accessors_order
# - control_statement
# - custom_rules
# - cyclomatic_complexity
# - deployment_target
# - discouraged_direct_init
# - duplicate_enum_cases
# - duplicate_imports
# - duplicated_key_in_dictionary_literal
# - dynamic_inline
- empty_enum_arguments
# - empty_parameters
# - empty_parentheses_with_trailing_closure
# - file_length
# - for_where
# - force_cast
# - force_try
# - function_body_length
# - function_parameter_count
# - generic_type_name
# - identifier_name
# - implicit_getter
# - inclusive_language
# - inert_defer
# - is_disjoint
# - large_tuple
# - leading_whitespace
# - legacy_cggeometry_functions
# - legacy_constant
# - legacy_constructor
# - legacy_hashing
# - legacy_nsgeometry_functions
# - line_length
# - mark
- multiple_closures_with_trailing_closure
# - nesting
# - no_fallthrough_only
# - no_space_in_method_call
# - notification_center_detachment
# - nsobject_prefer_isequal
# - opening_brace
# - operator_whitespace
# - orphaned_doc_comment
# - private_over_fileprivate
# - private_unit_test
# - protocol_property_accessors_order
# - reduce_boolean
# - redundant_discardable_let
# - redundant_objc_attribute
# - redundant_optional_initialization
# - redundant_set_access_control
# - redundant_string_enum_value
# - redundant_void_return
# - return_arrow_whitespace
# - self_in_property_initialization
# - shorthand_operator
# - statement_position
# - superfluous_disable_command
# - switch_case_alignment
# - syntactic_sugar
# - todo
# - trailing_comma
# - trailing_newline
# - trailing_semicolon
# - trailing_whitespace
# - type_body_length
# - type_name
# - unneeded_break_in_switch
# - unused_capture_list
# - unused_closure_parameter
# - unused_control_flow_label
# - unused_enumerated
# - unused_optional_binding
# - unused_setter_value
# - valid_ibinspectable
# - vertical_parameter_alignment
# - vertical_whitespace
# - void_return
# - xctfail_message
# デフォルト無効で任意に有効化
opt_in_rules:
- anonymous_argument_in_multiline_closure
- anyobject_protocol
- array_init
- attributes
- balanced_xctest_lifecycle
- capture_variable
- closure_body_length
- closure_end_indentation
- closure_spacing
- collection_alignment
#- conditional_returns_on_newline # ガード文などは簡潔に一行で記述したいため
- contains_over_filter_count
- contains_over_filter_is_empty
- contains_over_first_not_nil
- contains_over_range_nil_comparison
- convenience_type
- discarded_notification_center_observer
- discouraged_assert
- discouraged_none_name
- discouraged_object_literal
- discouraged_optional_boolean
- discouraged_optional_collection
- empty_collection_literal
- empty_count
- empty_string
- empty_xctest_method
- enum_case_associated_values_count
- expiring_todo
#- explicit_acl #ACLを最低限にしたいため
# - explicit_enum_raw_value # rawValue省略する時もある
- explicit_init
#- explicit_self # 関数にselfつけたくないため
#- explicit_top_level_acl # ACLを最低限にしたい
#- explicit_type_interface # 型推論に任せたい
- extension_access_modifier
- fallthrough
# - fatal_error_message # gatal_errorにmessageが不要なため
# - file_header #header規則は無し
- file_name
- file_name_no_space
- file_types_order
- first_where
- flatmap_over_map_reduce
- force_unwrapping
- function_default_parameter_at_end
- ibinspectable_in_extension
- identical_operands
- implicit_return
# - implicitly_unwrapped_optional # 意図的に強制アンラップする時もあるため
- indentation_width
- joined_default_parameter
- last_where
- legacy_multiple
- legacy_objc_type
- legacy_random
- let_var_whitespace
- literal_expression_end_indentation
# - lower_acl_than_parent # 対応不可のため
#- missing_docs # docsを重視していないため
- modifier_order
#- multiline_arguments # 引数は同じ行に2つ入れたいこともあるため
#- multiline_arguments_brackets # 括弧で行を増やしたくないため
#- multiline_function_chains # 関数の呼び出しは同じ行に2つ入れたいこともあるため
#- multiline_literal_brackets # 括弧で行を増やしたくないため
#- multiline_parameters # 引数は同じ行に2つ入れたいこともあるため
#- multiline_parameters_brackets # 括弧で行を増やしたくないため
- nimble_operator
#- no_extension_access_modifier # https://techblog.zozo.com/entry/swift_modern_extensions
# - no_grouping_extension # グルーピングにextensionを利用したいため
- nslocalizedstring_key
- nslocalizedstring_require_bundle
- number_separator
- object_literal
- operator_usage_whitespace
- optional_enum_case_matching
- overridden_super_call
- override_in_extension
- pattern_matching_keywords
- prefer_nimble
- prefer_self_in_static_references
- prefer_self_type_over_type_of_self
- prefer_zero_over_explicit_init
#- prefixed_toplevel_constant # 定数プリフィックスを使いたくない
- private_action
- private_outlet
- private_subject
# - prohibited_interface_builder #IBを使って
- prohibited_super_call
- quick_discouraged_call
- quick_discouraged_focused_test
- quick_discouraged_pending_test
- raw_value_for_camel_cased_codable_enum
- reduce_into
- redundant_nil_coalescing
- redundant_type_annotation
# - required_deinit # deinitを強制したくないため
- required_enum_case
- single_test_class
- sorted_first_last
- sorted_imports
- static_operator
# - strict_fileprivate # fileprivateを利用したいため
- strong_iboutlet
# - switch_case_on_newline # caseと同じ行に記述したいため
- test_case_accessibility
- toggle_bool
- trailing_closure
- type_contents_order
- unavailable_function
- unneeded_parentheses_in_closure_argument
- unowned_variable_capture
- untyped_error_in_catch
- unused_declaration
- unused_import
- vertical_parameter_alignment_on_call
- vertical_whitespace_between_cases
- vertical_whitespace_closing_braces
- vertical_whitespace_opening_braces
- weak_delegate
- xct_specific_matcher
- yoda_condition
# 無効にするルール
disabled_rules:
# opt-in中で無効にするルール
# default以外のopt-inから採用ルール
# Lint除外パス
excluded:
- Generated
- KuriTemplate
# 1行当たりの文字列制限
line_length:
- 200 # warning
- 300 # error
# 型の行数制限
type_body_length:
- 400 # warning
- 600 # error
# ファイル当たりの行数制限
file_length:
- 500 # warning
- 1000 # error
# メソッドの行数制限
function_body_length:
- 100 # warning
- 200 # error
type_name:
max_length:
warning: 40
error: 50
identifier_name:
min_length:
warning: 1 #
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment