-
Notifications
You must be signed in to change notification settings - Fork 34
/
analysis_options.yaml
145 lines (139 loc) · 5.01 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
# This file configures the analyzer, which statically analyzes Dart code to
# check for errors, warnings, and lints.
#
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
# invoked from the command line by running `flutter analyze`.
# The following line activates a set of recommended lints for Flutter apps,
# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml
analyzer:
exclude:
- "lib/**/*.freezed.dart"
- "lib/**/*.g.dart"
- "lib/**/*.config.dart"
plugins:
- dart_code_metrics
linter:
# The lint rules applied to this project can be customized in the
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
# included above or to enable additional rules. A list of all available lints
# and their documentation is published at
# https://dart-lang.github.io/linter/lints/index.html.
#
# Instead of disabling a lint rule for the entire project in the
# section below, it can also be suppressed for a single line of code
# or a specific dart file by using the `// ignore: name_of_lint` and
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
# producing the lint.
rules:
require_trailing_commas: true
prefer_final_locals: true
prefer_final_in_for_each: true
null_check_on_nullable_type_parameter: true
avoid_function_literals_in_foreach_calls: true
avoid_relative_lib_imports: true
always_use_package_imports: true
avoid_types_on_closure_parameters: true
avoid_void_async: true
cancel_subscriptions: true
close_sinks: true
package_api_docs: true
package_prefixed_library_names: true
test_types_in_equals: true
throw_in_finally: true
unnecessary_statements: true
use_super_parameters: true
avoid_dynamic_calls: false
avoid_slow_async_io: true
no_duplicate_case_values: true
use_build_context_synchronously: true
valid_regexps: true
depend_on_referenced_packages: true
always_require_non_null_named_parameters: true
annotate_overrides: true
avoid_annotating_with_dynamic: true
avoid_bool_literals_in_conditional_expressions: true
avoid_catches_without_on_clauses: false
avoid_catching_errors: false
avoid_classes_with_only_static_members: false
avoid_double_and_int_checks: true
avoid_escaping_inner_quotes: true
avoid_field_initializers_in_const_classes: true
avoid_init_to_null: true
avoid_null_checks_in_equality_operators: true
# Need for LINT
avoid_positional_boolean_parameters: false
avoid_private_typedef_functions: true
avoid_redundant_argument_values: true
avoid_returning_null_for_void: true
avoid_shadowing_type_parameters: true
avoid_single_cascade_in_expression_statements: true
avoid_unnecessary_containers: true
await_only_futures: true
cast_nullable_to_non_nullable: false
combinators_ordering: true
conditional_uri_does_not_exist: true
enable_null_safety: true
eol_at_end_of_file: true
exhaustive_cases: true
prefer_is_empty: true
prefer_is_not_empty: true
prefer_is_not_operator: true
prefer_iterable_whereType: true
prefer_null_aware_method_calls: true
prefer_null_aware_operators: true
prefer_spread_collections: true
sized_box_for_whitespace: true
sized_box_shrink_expand: true
unnecessary_null_checks: true
unnecessary_null_in_if_null_operators: true
unnecessary_overrides: true
unnecessary_parenthesis: true
unnecessary_raw_strings: true
unnecessary_string_interpolations: true
unnecessary_this: true
unnecessary_to_list_in_spreads: true
unreachable_from_main: true
use_colored_box: true
use_enums: true
use_full_hex_values_for_flutter_colors: true
use_if_null_to_convert_nulls_to_bools: true
use_is_even_rather_than_modulo: true
use_named_constants: true
use_raw_strings: true
use_setters_to_change_properties: true
use_string_buffers: false
use_test_throws_matchers: true
use_to_and_as_if_applicable: true
void_checks: true
# Pub rules
secure_pubspec_urls: true
# avoid_print: false # Uncomment to disable the `avoid_print` rule
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options
dart_code_metrics:
# anti-patterns:
# - long-method
# - long-parameter-list
metrics:
cyclomatic-complexity: 20
maximum-nesting-level: 5
number-of-parameters: 10
source-lines-of-code: 50
metrics-exclude:
- test/**
rules:
# - newline-before-return:
# severity: style
- no-boolean-literal-compare:
severity: style
# - no-empty-block:
# severity: warning
# - prefer-trailing-comma:
# severity: none
# - prefer-conditional-expressions:
# severity: none
- no-equal-then-else:
severity: error