# 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