# 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

plugins:
  riverpod_lint: 3.1.4-dev.3

analyzer:
  exclude:
    - build/**
    - .dart_tool/**
    - lib/**/*.g.dart
    - lib/l10n/*.dart
    - android/**
    - ios/**
    - web/**
    - windows/**
    - macos/**
    - linux/**
  language:
    strict-casts: true
    strict-inference: true
    strict-raw-types: true
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.dev/lints.
  #
  # 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:
    # avoid_print: false  # Uncomment to disable the `avoid_print` rule
    # prefer_single_quotes: true  # Uncomment to enable the `prefer_single_quotes` rule
    always_declare_return_types: true
    avoid_dynamic_calls: true
    avoid_types_as_parameter_names: true
    strict_top_level_inference: true
    type_annotate_public_apis: true
    cancel_subscriptions: true
    close_sinks: true
    # Catches dead cross-layer chains (Dart wrapper kept alive only by its own
    # declaration) before they accumulate into another dedup campaign.
    unreachable_from_main: true

# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options
