flutter_lints

v6.0.0

Recommended lints for Flutter apps, packages, and plugins to encourage good coding practices.

Package archive: https://pubdev.letsnova.ru/api/archives/flutter_lints/6.0.0.tar.gz

Installdart pub add flutter_lints

Readme

pub package

This package contains a recommended set of lints for Flutter apps, packages, and plugins to encourage good coding practices.

This package is built on top of Dart's recommended.yaml set of lints from package:lints.

Lints are surfaced by the dart analyzer, which statically checks dart code. Dart-enabled IDEs typically present the issues identified by the analyzer in their UI. Alternatively, the analyzer can be invoked manually by running flutter analyze.

Usage

Flutter apps, packages, and plugins created with flutter create starting with Flutter version 2.3.0 are already set up to use the lints defined in this package. Entities created before that version can use these lints by following these instructions:

  1. Depend on this package as a dev_dependency by running flutter pub add dev:flutter_lints.
  2. Create an analysis_options.yaml file at the root of the package (alongside the pubspec.yaml file) and include: package:flutter_lints/flutter.yaml from it.

Example analysis_options.yaml file:

# 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
                
                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/tools/linter-rules.
                  #
                  # 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
                
                # Additional information about this file can be found at
                # https://dart.dev/tools/analysis
                

Adding new lints

Please file a lint proposal issue to suggest that an existing lint rule should be added to this package. The benefits and risks of adding a lint should be discussed on that issue with all stakeholders involved. The suggestions will be reviewed periodically (typically once a year). Following a review, the package will be updated with all lints that made the cut.

Adding a lint to the package may create new warnings for existing users and is therefore considered to be a breaking change, which will require a major version bump. To keep churn low, lints are not added one-by-one, but in one batch following a review of all accumulated suggestions since the previous review.

Changelog

6.0.0

  • Updates package:lints dependency to version 6.0.0, with the following changes:
    • adds strict_top_level_inference
    • adds unnecessary_underscores
  • Updates minimum supported SDK version to Flutter 3.32/Dart 3.8.

5.0.0

  • Updates package:lints dependency to version 5.0.0, with the following changes:
    • adds invalid_runtime_check_with_js_interop_types
    • adds unnecessary_library_name
    • removes avoid_null_checks_in_equality_operators
  • Removes the following lints (see https://github.com/dart-lang/lints/issues/205):
    • prefer_const_constructors
    • prefer_const_declarations
    • prefer_const_literals_to_create_immutables
  • Updates minimum supported SDK version to Flutter 3.24/Dart 3.5.

4.0.0

  • Updates package:lints dependency to version 4.0.0, with the following changes:
    • adds library_annotations
    • adds no_wildcard_variable_uses
    • removes package_prefixed_library_names
    • removes library_names

3.0.2

  • Updates minimum supported SDK version to Flutter 3.13/Dart 3.1.
  • Updates various links in comments and documentation.

3.0.1

  • Replaces flutter pub add --dev with dev: in README.md.

3.0.0

  • Updated package:lints dependency to version 3.0.0, with the following changes:
    • added collection_methods_unrelated_type
    • added dangling_library_doc_comments
    • added implicit_call_tearoffs
    • added secure_pubspec_urls
    • added type_literal_in_constant_pattern
    • added unnecessary_to_list_in_spreads
    • added use_string_in_part_of_directives
    • added use_super_parameters
    • removed iterable_contains_unrelated_type
    • removed list_remove_unrelated_type
    • removed no_wildcard_variable_uses
    • removed prefer_equal_for_default_values
    • removed prefer_void_to_null
  • Updates minimum supported SDK version to Flutter 3.10 / Dart 3.0.

2.0.3

  • Adds pub topics to package metadata.
  • Updates minimum supported SDK version to Flutter 3.7/Dart 2.19.

2.0.2

  • Update links to the old linter site in the README and example to point to dart.dev.
  • Updates minimum supported SDK version to Flutter 3.3/Dart 2.18.

2.0.1

  • Updated readme to document suggestion process for new lints

2.0.0

  • Added the following lints:
    • sort_child_properties_last
    • use_build_context_synchronously
  • Updated package:lints dependency to version 2.0.0, which added the following lints:
    • depend_on_referenced_packages
    • library_private_types_in_public_api
    • no_leading_underscores_for_library_prefixes
    • no_leading_underscores_for_local_identifiers
    • null_check_on_nullable_type_parameter
    • prefer_interpolation_to_compose_strings
    • unnecessary_constructor_name
    • unnecessary_late
    • unnecessary_null_aware_assignments
    • unnecessary_nullable_for_final_variable_declarations
  • Bumped the minimum required Dart SDK version to 2.17

1.0.4

  • Small update to readme

1.0.3

  • More small updates to readme

1.0.2

  • Small updates to readme

1.0.1

  • Added an example project

1.0.0

  • Initial release