mirror of
https://github.com/wger-project/flutter.git
synced 2026-02-17 16:07:51 +01:00
176 lines
6.6 KiB
YAML
176 lines
6.6 KiB
YAML
include: package:flutter_lints/flutter.yaml
|
|
|
|
analyzer:
|
|
strong-mode:
|
|
implicit-casts: true # to be changed
|
|
implicit-dynamic: true # to be changed
|
|
errors:
|
|
# Treat missing required parameters as a warning (not a hint)
|
|
missing_required_param: warning
|
|
# Treat missing returns as a warning (not a hint)
|
|
missing_return: warning
|
|
# Allow having TODOs in the code
|
|
todo: ignore
|
|
# Allow self-reference to deprecated members (we do this because otherwise we have
|
|
# to annotate every member in every test, assert, etc, when we deprecate something)
|
|
deprecated_member_use_from_same_package: ignore
|
|
plugins:
|
|
- riverpod_lint
|
|
|
|
formatter:
|
|
page_width: 100
|
|
trailing_commas: preserve
|
|
|
|
plugins:
|
|
riverpod_lint: 3.1.0
|
|
|
|
linter:
|
|
rules:
|
|
# These rules are documented on and in the same order as
|
|
# the Dart Lint rules page to make maintenance easier
|
|
# https://github.com/dart-lang/linter/blob/master/example/all.yaml
|
|
always_declare_return_types: true
|
|
always_put_control_body_on_new_line: true
|
|
always_require_non_null_named_parameters: true
|
|
always_specify_types: false # decided against using it for now
|
|
annotate_overrides: true
|
|
avoid_bool_literals_in_conditional_expressions: true
|
|
avoid_classes_with_only_static_members: true
|
|
avoid_dynamic_calls: false # to be changed
|
|
avoid_empty_else: true
|
|
avoid_equals_and_hash_code_on_mutable_classes: true
|
|
avoid_escaping_inner_quotes: true
|
|
avoid_field_initializers_in_const_classes: true
|
|
avoid_function_literals_in_foreach_calls: true
|
|
avoid_init_to_null: true
|
|
avoid_null_checks_in_equality_operators: true
|
|
avoid_relative_lib_imports: true
|
|
avoid_renaming_method_parameters: true
|
|
avoid_return_types_on_setters: true
|
|
avoid_returning_null_for_void: true
|
|
avoid_shadowing_type_parameters: true
|
|
avoid_single_cascade_in_expression_statements: true
|
|
avoid_slow_async_io: true
|
|
avoid_type_to_string: true
|
|
avoid_types_as_parameter_names: true
|
|
avoid_unnecessary_containers: true
|
|
avoid_unused_constructor_parameters: true
|
|
avoid_void_async: false
|
|
await_only_futures: true
|
|
camel_case_extensions: true
|
|
camel_case_types: false
|
|
cancel_subscriptions: true
|
|
cast_nullable_to_non_nullable: false # to be changed
|
|
constant_identifier_names: false
|
|
control_flow_in_finally: true
|
|
deprecated_consistency: true
|
|
directives_ordering: true
|
|
empty_catches: false
|
|
empty_constructor_bodies: true
|
|
empty_statements: true
|
|
exhaustive_cases: true
|
|
file_names: true
|
|
flutter_style_todos: false
|
|
hash_and_equals: true
|
|
implementation_imports: true
|
|
iterable_contains_unrelated_type: true
|
|
leading_newlines_in_multiline_strings: true
|
|
library_names: true
|
|
library_prefixes: true
|
|
library_private_types_in_public_api: false
|
|
list_remove_unrelated_type: true
|
|
missing_whitespace_between_adjacent_strings: false
|
|
no_adjacent_strings_in_list: true
|
|
no_duplicate_case_values: true
|
|
no_logic_in_create_state: true
|
|
non_constant_identifier_names: true
|
|
noop_primitive_operations: true
|
|
null_check_on_nullable_type_parameter: true
|
|
null_closures: true
|
|
overridden_fields: true
|
|
package_api_docs: true
|
|
package_names: true
|
|
package_prefixed_library_names: true
|
|
prefer_adjacent_string_concatenation: true
|
|
prefer_asserts_in_initializer_lists: true
|
|
prefer_collection_literals: true
|
|
prefer_conditional_assignment: true
|
|
prefer_const_constructors: true
|
|
prefer_const_constructors_in_immutables: true
|
|
prefer_const_declarations: true
|
|
prefer_const_literals_to_create_immutables: true
|
|
prefer_contains: true
|
|
prefer_equal_for_default_values: true
|
|
prefer_final_fields: true
|
|
prefer_final_in_for_each: true
|
|
prefer_final_locals: true
|
|
prefer_for_elements_to_map_fromIterable: true
|
|
prefer_foreach: true
|
|
prefer_function_declarations_over_variables: true
|
|
prefer_generic_function_type_aliases: true
|
|
prefer_if_elements_to_conditional_expressions: true
|
|
prefer_if_null_operators: true
|
|
prefer_initializing_formals: true
|
|
prefer_inlined_adds: true
|
|
prefer_interpolation_to_compose_strings: true
|
|
prefer_is_empty: true
|
|
prefer_is_not_empty: true
|
|
prefer_is_not_operator: true
|
|
prefer_iterable_whereType: true
|
|
prefer_null_aware_operators: true
|
|
prefer_single_quotes: true
|
|
prefer_spread_collections: true
|
|
prefer_typing_uninitialized_variables: true
|
|
prefer_void_to_null: true
|
|
provide_deprecation_message: true
|
|
recursive_getters: true
|
|
sized_box_for_whitespace: true
|
|
slash_for_doc_comments: true
|
|
sort_constructors_first: false # good for code readability but later
|
|
sort_unnamed_constructors_first: true
|
|
test_types_in_equals: true
|
|
throw_in_finally: true
|
|
tighten_type_of_initializing_formals: true
|
|
type_init_formals: true
|
|
unnecessary_await_in_return: true
|
|
unnecessary_brace_in_string_interps: true
|
|
unnecessary_const: true
|
|
unnecessary_getters_setters: true
|
|
unnecessary_new: true
|
|
unnecessary_null_aware_assignments: true
|
|
unnecessary_null_checks: true
|
|
unnecessary_null_in_if_null_operators: true
|
|
unnecessary_nullable_for_final_variable_declarations: true
|
|
unnecessary_overrides: true
|
|
unnecessary_parenthesis: true
|
|
unnecessary_statements: true
|
|
unnecessary_string_escapes: true
|
|
unnecessary_string_interpolations: true
|
|
unnecessary_this: true
|
|
unrelated_type_equality_checks: true
|
|
use_full_hex_values_for_flutter_colors: true
|
|
use_function_type_syntax_for_parameters: true
|
|
use_is_even_rather_than_modulo: true
|
|
use_key_in_widget_constructors: false
|
|
use_late_for_private_fields_and_variables: true
|
|
use_named_constants: true
|
|
use_raw_strings: true
|
|
use_rethrow_when_possible: true
|
|
use_test_throws_matchers: true
|
|
valid_regexps: true
|
|
void_checks: false
|
|
dart_code_metrics:
|
|
extends:
|
|
- recommended
|
|
rules:
|
|
- avoid-shadowing: false # we shadow a lot, e.g. context in callbacks
|
|
- avoid-unsafe-collection-methods: false # we use foo[index] where index may not exist in theory, but in practice they will, in tests. also we can just handle the exceptions when they occur
|
|
- prefer-prefixed-global-constants: false # we don't really care for the 'k' prefix
|
|
- prefer-single-widget-per-file: false
|
|
- avoid-passing-self-as-argument: false # fairly harmless. and e.g. drift calls are like this
|
|
- avoid-passing-async-when-sync-expected: false # we really like to do this in onTap() etc, and it seems harmless
|
|
- prefer-match-file-name: false # dieter wants to enable this. but requires a lot of renames. what does roland think?
|
|
formatter:
|
|
indent: 0
|
|
cascading-widget-extensions: false
|