include: package:lints/recommended.yaml

analyzer:
  language:
    strict-casts: true
    strict-inference: true
    strict-raw-types: true

linter:
  rules:
    # consistency
    - directives_ordering
    - omit_local_variable_types
    - prefer_final_locals
    - prefer_final_in_for_each
    - prefer_relative_imports
    - prefer_single_quotes
    - sort_pub_dependencies
    - unnecessary_library_directive

    # correctness
    - always_declare_return_types
    - avoid_catching_errors
    - avoid_dynamic_calls
    - only_throw_errors
    - test_types_in_equals
    - throw_in_finally
    - type_annotate_public_apis
    - unawaited_futures

    # documentation related
    - comment_references
