# 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/grpc/bilibili/**
    # - lib/common/widgets/flutter/**

formatter:
  trailing_commas: preserve

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.
  # https://dart.dev/tools/linter-rules
  rules:
    # avoid_print: false  # Uncomment to disable the `avoid_print` rule
    # prefer_single_quotes: true  # Uncomment to enable the `prefer_single_quotes` rule
    # - always_specify_types
    # - avoid_positional_boolean_parameters
    - always_declare_return_types
    - always_use_package_imports
    - avoid_empty_else
    - avoid_field_initializers_in_const_classes
    - avoid_print
    - avoid_relative_lib_imports
    - avoid_shadowing_type_parameters
    - avoid_single_cascade_in_expression_statements
    - avoid_slow_async_io
    - avoid_type_to_string
    - avoid_types_as_parameter_names
    - avoid_unnecessary_containers
    - avoid_void_async
    - await_only_futures
    - camel_case_extensions
    - camel_case_types
    - cancel_subscriptions
    - cascade_invocations
    - prefer_const_constructors
    - prefer_const_declarations
    - sized_box_for_whitespace
    - unnecessary_late
    - use_colored_box
    - use_decorated_box
    - use_named_constants
    - use_null_aware_elements
    - unnecessary_lambdas
    - use_is_even_rather_than_modulo
    - unnecessary_async
    - unnecessary_await_in_return
    - unnecessary_getters_setters
    - prefer_const_literals_to_create_immutables
    - no_literal_bool_comparisons
    - use_truncating_division
    - use_string_buffers
    - unnecessary_statements
    - unnecessary_nullable_for_final_variable_declarations
    - tighten_type_of_initializing_formals
    - prefer_void_to_null
    - prefer_spread_collections
    - unnecessary_to_list_in_spreads
    - prefer_for_elements_to_map_fromIterable
# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options
