NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #4158 most downloaded on pub.dev
Linting tool for Dart and Flutter projects to encourage good coding practices.
Last release 4 months ago
03 Jun 2026
Release timing varies
gaps range from 3 weeks to 7 months
Nearly every release is documented
notes for 22 of 22 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
22 releases · first in 2023
One column per quarter.
BREAKING: Migrate from `custom_lint` to Dart analyzer plugins via `analysis_server_plugin`.
custom_lint to Dart analyzer plugins via analysis_server_plugin.>=3.10.0) and analyzer 13.0.0 (was ^8.0.0).custom_lint / custom_lint_builder dependency and CLI integration.avoid_abbreviations_in_doc_comments.avoid_nested_if.boolean_prefixes.max_switch_cases.avoid_returning_widgets.avoid_redundant_pattern_field_names in favor of the built-in simplify_variable_pattern.avoid_inverted_boolean_expressions.prefer_const_constructor_declarations.prefer_immediate_return.invert_boolean_expression.swap_then_else_expression.use_edge_insets_zero.wrap_all_children_with_expanded.wrap_with_listenable_builder.Bump the minimum analyzer version to 8.0.0.
analyzer version to 8.0.0. (#73)Bump the minimum analyzer version to 7.5.0.
analyzer version to 7.5.0. (#71)Bump the minimum analyzer version to 7.4.0.
analyzer version to 7.4.0. (#68)Assist: convert_to_for_in_iterable_indexed_loop.
prefer_const_constructor_declarations to support constructors with super parameters. (#58)Bump the minimum analyzer_plugin version to 0.13.0. (#52 thanks to [jogboms])
analyzer_plugin version to 0.13.0. (#52 thanks to [jogboms])Bump the minimum analyzer version to 7.0.0.
analyzer version to 7.0.0.custom_lint_builder version to 0.7.0.pubspec_parse version to 1.4.0.Bump the minimum analyzer version to 6.6.0.
analyzer version to 6.6.0.custom_lint_builder version to 0.6.5.avoid_public_members_in_states now ignores public fields and methods with @visibleForTesting annotations.dispose_controllers when dispose is already called via cascade notation.Add support for changing the lint severity.
avoid_mutable_global_variables (#37)avoid_redundant_pattern_field_names (#40)avoid_positional_fields_in_records (#41)class_members_ordering (#42)wrap_with_listenable_builder (#26) thanks to [imsamgarg])analysis_options.yaml file. (#39)avoid_duplicate_import has been renamed to no_duplicate_imports.prefer_declaring_const_constructors has been renamed to prefer_const_constructor_declarations.doc_comments_before_annotations has been renamed to always_put_doc_comments_before_annotations.boolean_prefix has been renamed to boolean_prefixes.always_declare_parameter_names has been renamed to always_specify_parameter_names.prefer_spacer has been renamed to use_spacer.proper_controller_dispose has been renamed to dispose_controllers.avoid_widget_state_public_members has been renamed to avoid_public_members_in_states.proper_edge_insets_constructor has been renamed to proper_edge_insets_constructors.prefer_dedicated_media_query_method has been renamed to prefer_dedicated_media_query_functions.custom_lint_builder version to 0.6.2.avoid_nested_if when the if statement is a else if statement. (#44)prefer_value_changed lint. (#45)wrap_with_layout_builder will not be available if the selected widget is a LayoutBuilder or already wrapped with a LayoutBuilder.
Assist: wrap_all_children_with_expanded
Lint: avoid_widget_state_public_members
no_self_comparisons (#9)avoid_widget_state_public_members (#10)wrap_with_value_listenable_builder (#16 thanks to [imsamgarg])prefer_dedicated_media_query_method now supports indirect calls to MediaQuery.of(context) and MediaQuery.maybeOf(context) (#13 thanks to [imsamgarg])proper_controller_dispose now supports ChangeNotifier's subclasses (#14 thanks to [imsamgarg])proper_controller_dispose (#15 thanks to [imsamgarg])Lint: avoid_abbreviations_in_doc_comments
avoid_abbreviations_in_doc_commentsdoc_comments_before_annotationsprefer_library_prefixesprefer_dedicated_media_query_method now supports onOffSwitchLabels and textScaler.prefer_void_callback, prefer_async_callback and prefer_value_changed when the function is nullable.Lint: prefer_new_line_before_return
avoid_unused_parametersprefer_async_awaitprefer_new_line_before_returnunnecessary_nullable_return_typeBREAKING: avoid_empty_block has been renamed to avoid_empty_blocks.
avoid_returning_widgetsboolean_prefixavoid_empty_block has been renamed to avoid_empty_blocks.avoid_inverted_boolean_expression has been renamed to avoid_inverted_boolean_expressions.correct_order_for_super_dispose has been renamed to proper_super_dispose.correct_order_for_super_init_state has been renamed to proper_super_init_state.proper_usage_of_expanded_and_flexible has been renamed to proper_expanded_and_flexible.proper_usage_of_from_environment has been renamed to proper_from_environment.prefer_declaring_const_constructor has been renamed to prefer_declaring_const_constructors.prefer_declaring_parameter_name has been renamed to always_declare_parameter_names.proper_edge_insets_constructor now works when arguments are variables.proper_edge_insets_constructor is no longer triggered if all the arguments are 0 in flavor of the built-in use_named_constants.prefer_underscore_for_unused_callback_parameters false positive on unused parameters in function declarations.Lint: prefer_underscore_for_unused_callback_parameters
avoid_dynamicprefer_async_callbackprefer_value_changedprefer_void_callbackprefer_underscore_for_unused_callback_parametersLint: proper_usage_of_from_environment
proper_usage_of_from_environmentwrap_with_layout_buildernew and const keywords.correct_order_for_super_dispose is not working.### Added - Lint: avoid_duplicate_import - Lint: max_lines_for_file - Lint: max_lines_for_function
avoid_duplicate_importmax_lines_for_filemax_lines_for_functionLint: avoid_inverted_boolean_expression
avoid_inverted_boolean_expressioninvert_boolean_expressionswap_then_else_expressionLint: prefer_dedicated_media_query_method
prefer_dedicated_media_query_methodproper_controller_disposeproper_edge_insets_constructor### Fixed - README.md image links.
[parlough]: https://github.com/parlough [imsamgarg]: https://github.com/imsamgarg [jogboms]: https://github.com/jogboms
Your coding agent can read these notes before it upgrades. Set up the MCP server →