-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Updated analysis_options from flutter/flutter #11692
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,7 +1,7 @@ | ||
| # Specify analysis options. | ||
| # | ||
| # This file is a copy of analysis_options.yaml from flutter repo | ||
| # as of 2023-12-18, but with some modifications marked with | ||
| # as of 2026-05-11, but with some modifications marked with | ||
| # "DIFFERENT FROM FLUTTER/FLUTTER" below. The file is expected to | ||
| # be kept in sync with the master file from the flutter repo. | ||
|
|
||
|
|
@@ -22,33 +22,40 @@ analyzer: | |
| - '**/*.g.dart' | ||
| - '**/*.mocks.dart' # Mockito @GenerateMocks | ||
|
|
||
| formatter: | ||
| page_width: 100 | ||
|
|
||
| linter: | ||
| rules: | ||
| # This list is derived from the list of all available lints located at | ||
| # https://github.com/dart-lang/linter/blob/main/example/all.yaml | ||
| # https://github.com/dart-lang/sdk/blob/main/pkg/linter/example/all.yaml | ||
| - always_declare_return_types | ||
| - always_put_control_body_on_new_line | ||
| # - always_put_required_named_parameters_first # we prefer having parameters in the same order as fields https://github.com/flutter/flutter/issues/10219 | ||
| # - always_specify_types # conflicts with omit_obvious_local_variable_types | ||
| # - always_use_package_imports # we do this commonly | ||
| - annotate_overrides | ||
| # - avoid_annotating_with_dynamic # conflicts with always_specify_types | ||
| - annotate_redeclares | ||
| # - avoid_annotating_with_dynamic # conflicts with type_annotate_public_apis | ||
| - avoid_bool_literals_in_conditional_expressions | ||
| # - avoid_catches_without_on_clauses # blocked on https://github.com/dart-lang/linter/issues/3023 | ||
| # - avoid_catching_errors # blocked on https://github.com/dart-lang/linter/issues/3023 | ||
| # - avoid_catching_errors # blocked on https://github.com/dart-lang/linter/issues/4998 | ||
| # - avoid_classes_with_only_static_members # we do this commonly for `abstract final class`es | ||
| - avoid_double_and_int_checks | ||
| - avoid_dynamic_calls | ||
| - avoid_empty_else | ||
| - avoid_equals_and_hash_code_on_mutable_classes | ||
| - avoid_escaping_inner_quotes | ||
| - avoid_field_initializers_in_const_classes | ||
| # - avoid_final_parameters # incompatible with prefer_final_parameters | ||
| # TODO(kallentu): Remove this lint once the Dart SDK in Flutter is on version 3.13. | ||
| - avoid_final_parameters | ||
| - avoid_function_literals_in_foreach_calls | ||
| # - avoid_futureor_void # not yet tested | ||
| # - avoid_implementing_value_types # see https://github.com/dart-lang/linter/issues/4558 | ||
| - avoid_init_to_null | ||
| - avoid_js_rounded_ints | ||
| # - avoid_multiple_declarations_per_line # seems to be a stylistic choice we don't subscribe to | ||
| - avoid_null_checks_in_equality_operators | ||
| # - avoid_positional_boolean_parameters # would have been nice to enable this but by now there's too many places that break it | ||
| - avoid_print | ||
| # - avoid_private_typedef_functions # we prefer having typedef (discussion in https://github.com/flutter/flutter/pull/16356) | ||
|
|
@@ -64,7 +71,7 @@ linter: | |
| - avoid_slow_async_io | ||
| - avoid_type_to_string | ||
| - avoid_types_as_parameter_names | ||
| # - avoid_types_on_closure_parameters # conflicts with always_specify_types | ||
| # - avoid_types_on_closure_parameters # not yet tested | ||
| - avoid_unnecessary_containers | ||
| - avoid_unused_constructor_parameters | ||
| - avoid_void_async | ||
|
|
@@ -91,6 +98,7 @@ linter: | |
| - directives_ordering | ||
| # - discarded_futures # too many false positives, similar to unawaited_futures | ||
| # - do_not_use_environment # there are appropriate times to use the environment, especially in our tests and build logic | ||
| # - document_ignores # not yet tested | ||
| - empty_catches | ||
| - empty_constructor_bodies | ||
| - empty_statements | ||
|
|
@@ -103,6 +111,7 @@ linter: | |
| - implicit_call_tearoffs | ||
| - implicit_reopen | ||
| - invalid_case_patterns | ||
| - invalid_runtime_check_with_js_interop_types | ||
| # - join_return_with_assignment # not required by flutter style | ||
| - leading_newlines_in_multiline_strings | ||
| - library_annotations | ||
|
|
@@ -114,7 +123,7 @@ linter: | |
| # - matching_super_parameters # blocked on https://github.com/dart-lang/language/issues/2509 | ||
| - missing_code_block_language_in_doc_comment | ||
| - missing_whitespace_between_adjacent_strings | ||
| # - no_adjacent_strings_in_list # conflicts with prefer_adjacent_string_concatenation | ||
| - no_adjacent_strings_in_list | ||
| - no_default_cases | ||
| - no_duplicate_case_values | ||
| - no_leading_underscores_for_library_prefixes | ||
|
|
@@ -128,12 +137,12 @@ linter: | |
| - noop_primitive_operations | ||
| - null_check_on_nullable_type_parameter | ||
| - null_closures | ||
| # - omit_local_variable_types # conflicts with specify_nonobvious_local_variable_types | ||
| - omit_obvious_local_variable_types | ||
| # - omit_local_variable_types # superset of omit_obvious_local_variable_types | ||
| - omit_obvious_local_variable_types # not yet tested | ||
| # - omit_obvious_property_types # conflicts with type_annotate_public_apis | ||
| # - one_member_abstracts # too many false positives | ||
| - only_throw_errors # this does get disabled in a few places where we have legacy code that uses strings et al | ||
| - overridden_fields | ||
| # - package_api_docs # Deprecated (https://github.com/dart-lang/linter/issues/5107) | ||
| - package_names | ||
| - package_prefixed_library_names | ||
| # - parameter_assignments # we do this commonly | ||
|
|
@@ -149,8 +158,7 @@ linter: | |
| # - prefer_constructors_over_static_methods # far too many false positives | ||
| - prefer_contains | ||
| # - prefer_double_quotes # opposite of prefer_single_quotes | ||
| # - prefer_expression_function_bodies # conflicts with https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md#consider-using--for-short-functions-and-methods | ||
| - prefer_final_fields | ||
| # - prefer_expression_function_bodies # conflicts with https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md#consider-using--for-short-functions-and-methods - prefer_final_fields | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why was prefer_final_fields pulled into this line and thus removed?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Typo, thanks for catching that! |
||
| - prefer_final_in_for_each | ||
| - prefer_final_locals | ||
| # - prefer_final_parameters # adds too much verbosity | ||
|
|
@@ -190,12 +198,14 @@ linter: | |
| - sort_unnamed_constructors_first | ||
| - specify_nonobvious_local_variable_types | ||
| - specify_nonobvious_property_types | ||
| - strict_top_level_inference | ||
| - test_types_in_equals | ||
| - throw_in_finally | ||
| - tighten_type_of_initializing_formals | ||
| - type_annotate_public_apis | ||
| - type_init_formals | ||
| - type_literal_in_constant_pattern | ||
| # - unawaited_futures # too many false positives, especially with the way AnimationController works | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is on, it's just in the wrong place. It's two lines down. |
||
| - unintended_html_in_doc_comment # DIFFERENT FROM FLUTTER/FLUTTER: Disabled due to an issue that has been fixed, so just hasn't been adopted there yet. | ||
| - unawaited_futures # DIFFERENT FROM FLUTTER/FLUTTER: It's disabled there for "too many false positives"; that's not an issue here, and missing awaits have caused production issues in plugins. | ||
| - unnecessary_await_in_return | ||
|
|
@@ -205,9 +215,11 @@ linter: | |
| - unnecessary_constructor_name | ||
| # - unnecessary_final # conflicts with prefer_final_locals | ||
| - unnecessary_getters_setters | ||
| # - unnecessary_ignore # Disabled by default to simplify migrations; should be periodically enabled locally to clean up offenders | ||
| # - unnecessary_lambdas # has false positives: https://github.com/dart-lang/linter/issues/498 | ||
| - unnecessary_late | ||
| - unnecessary_library_directive | ||
| # - unnecessary_library_name # blocked on https://github.com/dart-lang/dartdoc/issues/3882 | ||
| - unnecessary_new | ||
| - unnecessary_null_aware_assignments | ||
| - unnecessary_null_aware_operator_on_extension_on_nullable | ||
|
|
@@ -222,8 +234,10 @@ linter: | |
| - unnecessary_string_interpolations | ||
| - unnecessary_this | ||
| - unnecessary_to_list_in_spreads | ||
| - unnecessary_underscores | ||
| - unreachable_from_main | ||
| - unrelated_type_equality_checks | ||
| # - unsafe_variance # not yet tested | ||
| - use_build_context_synchronously | ||
| - use_colored_box | ||
| # - use_decorated_box # leads to bugs: DecoratedBox and Container are not equivalent (Container inserts extra padding) | ||
|
|
@@ -243,5 +257,8 @@ linter: | |
| - use_super_parameters | ||
| - use_test_throws_matchers | ||
| # - use_to_and_as_if_applicable # has false positives, so we prefer to catch this by code-review | ||
| - use_truncating_division | ||
| - valid_regexps | ||
| # TODO(kallentu): Remove this lint once the Dart SDK in Flutter is on version 3.13. | ||
| - var_with_no_type_annotation | ||
| - void_checks | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The lint
omit_obvious_local_variable_typesis enabled, but it is marked with a# not yet testedcomment. In this file, this specific comment is consistently used for lints that are disabled (commented out) while awaiting verification. Since this lint was already active in the previous version of the configuration and remains enabled here, the comment is misleading and should be removed.- omit_obvious_local_variable_typesThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's fix this.