89 lines
2.6 KiB
YAML
89 lines
2.6 KiB
YAML
# Static analysis configuration for the Flutter project.
|
|
# https://dart.dev/guides/language/analysis-options
|
|
#
|
|
# Base ruleset: flutter_lints (recommended Flutter defaults).
|
|
# Additional lints below catch real bugs and enforce consistent style.
|
|
|
|
include: package:flutter_lints/flutter.yaml
|
|
|
|
analyzer:
|
|
language:
|
|
strict-casts: true
|
|
strict-raw-types: true
|
|
errors:
|
|
invalid_annotation_target: ignore
|
|
todo: ignore
|
|
exclude:
|
|
- "**/*.g.dart"
|
|
- "**/*.freezed.dart"
|
|
- "lib/firebase_options.dart"
|
|
- "build/**"
|
|
|
|
linter:
|
|
rules:
|
|
# === Project conventions ===
|
|
prefer_relative_imports: true
|
|
prefer_single_quotes: true
|
|
eol_at_end_of_file: true
|
|
omit_local_variable_types: true
|
|
avoid_multiple_declarations_per_line: true
|
|
|
|
# === Bug catchers ===
|
|
always_declare_return_types: true
|
|
avoid_empty_else: true
|
|
avoid_slow_async_io: true
|
|
avoid_type_to_string: true
|
|
avoid_void_async: true
|
|
await_only_futures: true
|
|
cancel_subscriptions: true
|
|
cast_nullable_to_non_nullable: true
|
|
close_sinks: true
|
|
empty_catches: true
|
|
hash_and_equals: true
|
|
no_adjacent_strings_in_list: true
|
|
no_duplicate_case_values: true
|
|
test_types_in_equals: true
|
|
throw_in_finally: true
|
|
unawaited_futures: true
|
|
unnecessary_statements: true
|
|
unrelated_type_equality_checks: true
|
|
use_build_context_synchronously: true
|
|
valid_regexps: true
|
|
|
|
# === Flutter widget hygiene ===
|
|
avoid_unnecessary_containers: true
|
|
sized_box_for_whitespace: true
|
|
sort_child_properties_last: true
|
|
use_colored_box: true
|
|
use_decorated_box: true
|
|
use_full_hex_values_for_flutter_colors: true
|
|
use_key_in_widget_constructors: true
|
|
|
|
# === Code clarity ===
|
|
directives_ordering: true
|
|
library_prefixes: true
|
|
no_leading_underscores_for_local_identifiers: true
|
|
prefer_conditional_assignment: true
|
|
prefer_if_elements_to_conditional_expressions: true
|
|
prefer_if_null_operators: true
|
|
prefer_initializing_formals: 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_spread_collections: true
|
|
prefer_void_to_null: true
|
|
unnecessary_await_in_return: true
|
|
unnecessary_brace_in_string_interps: true
|
|
unnecessary_lambdas: true
|
|
unnecessary_null_aware_assignments: true
|
|
unnecessary_null_checks: true
|
|
unnecessary_parenthesis: true
|
|
unnecessary_string_interpolations: true
|
|
use_super_parameters: true
|
|
|
|
# === File naming ===
|
|
file_names: true
|