forked from dart-code-checker/dart-code-metrics
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathanalysis_options.yaml
170 lines (167 loc) · 5.11 KB
/
analysis_options.yaml
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
include: package:lints/recommended.yaml
analyzer:
exclude:
- test/resources/*
- test/resources/unused_files_analyzer/**
- test/**/examples/**
plugins:
- dart_code_metrics
strong-mode:
implicit-casts: false
implicit-dynamic: false
dart_code_metrics:
anti-patterns:
- long-method
- long-parameter-list
metrics:
cyclomatic-complexity: 20
maintainability-index: 50
maximum-nesting: 5
number-of-parameters: 5
source-lines-of-code: 50
metrics-exclude:
- test/src/analyzer_plugin/**
- test/src/analyzers/**
- test/src/cli/**
- test/src/config_builder/**
- test/src/helpers/**
- test/src/reporters/**
- test/src/utils/**
- test/resources/*
- test/*
rules:
- avoid-unused-parameters
- avoid-unnecessary-type-assertions
- binary-expression-operand-order
- double-literal-format
- newline-before-return
- no-boolean-literal-compare
- no-empty-block
- no-equal-then-else
- no-object-declaration
- prefer-conditional-expressions
- prefer-first
- prefer-last
- prefer-match-file-name:
exclude:
- test/**
- prefer-trailing-comma
linter:
rules:
- always_declare_return_types
- always_put_control_body_on_new_line
# - always_put_required_named_parameters_first
# - always_specify_types
# - always_use_package_imports
- avoid_annotating_with_dynamic
- avoid_bool_literals_in_conditional_expressions
- avoid_catches_without_on_clauses
- avoid_catching_errors
# - avoid_classes_with_only_static_members
- avoid_double_and_int_checks
- avoid_dynamic_calls
- avoid_equals_and_hash_code_on_mutable_classes
- avoid_escaping_inner_quotes
- avoid_field_initializers_in_const_classes
- avoid_implementing_value_types
- avoid_js_rounded_ints
- avoid_multiple_declarations_per_line
- avoid_positional_boolean_parameters
# - avoid_print
- avoid_private_typedef_functions
# - avoid_redundant_argument_values
- avoid_returning_null
- avoid_returning_null_for_future
- avoid_returning_this
- avoid_setters_without_getters
- avoid_slow_async_io
- avoid_type_to_string
- avoid_types_on_closure_parameters
- avoid_unnecessary_containers
- avoid_unused_constructor_parameters
- avoid_void_async
- avoid_web_libraries_in_flutter
- cancel_subscriptions
- cascade_invocations
# - cast_nullable_to_non_nullable
- close_sinks
- comment_references
- depend_on_referenced_packages
- deprecated_consistency
- diagnostic_describe_all_properties
- directives_ordering
- do_not_use_environment
- eol_at_end_of_file
- flutter_style_todos
- invariant_booleans
- join_return_with_assignment
- leading_newlines_in_multiline_strings
- library_private_types_in_public_api
# - lines_longer_than_80_chars
- literal_only_boolean_expressions
- missing_whitespace_between_adjacent_strings
# - no_adjacent_strings_in_list
- no_default_cases
- no_logic_in_create_state
- no_runtimeType_toString
- noop_primitive_operations
- null_check_on_nullable_type_parameter
- omit_local_variable_types
# - one_member_abstracts
- only_throw_errors
- package_api_docs
- parameter_assignments
- prefer_asserts_in_initializer_lists
- prefer_asserts_with_message
- prefer_const_constructors
- prefer_const_constructors_in_immutables
- prefer_const_declarations
- prefer_const_literals_to_create_immutables
- prefer_constructors_over_static_methods
# - prefer_double_quotes
- prefer_expression_function_bodies
- prefer_final_in_for_each
- prefer_final_locals
# - prefer_final_parameters
- prefer_foreach
- prefer_if_elements_to_conditional_expressions
- prefer_int_literals
- prefer_interpolation_to_compose_strings
- prefer_mixin
- prefer_null_aware_method_calls
- prefer_relative_imports
- prefer_single_quotes
# - public_member_api_docs
# - require_trailing_commas
- sized_box_for_whitespace
# - sort_child_properties_last
# - sort_constructors_first
- sort_pub_dependencies
- sort_unnamed_constructors_first
- test_types_in_equals
- throw_in_finally
- tighten_type_of_initializing_formals
- type_annotate_public_apis
- unawaited_futures
- unnecessary_await_in_return
# - unnecessary_final
- unnecessary_lambdas
- unnecessary_null_aware_assignments
- unnecessary_null_checks
- unnecessary_nullable_for_final_variable_declarations
- unnecessary_parenthesis
- unnecessary_raw_strings
- unnecessary_statements
- unsafe_html
- use_build_context_synchronously
# - use_full_hex_values_for_flutter_colors
- use_if_null_to_convert_nulls_to_bools
- use_is_even_rather_than_modulo
- use_key_in_widget_constructors
- use_late_for_private_fields_and_variables
- use_named_constants
- use_raw_strings
- use_setters_to_change_properties
- use_string_buffers
- use_test_throws_matchers
- use_to_and_as_if_applicable