-
-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #93 from rainyl/better-lints
update lint rules and format
- Loading branch information
Showing
59 changed files
with
1,072 additions
and
714 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,231 @@ | ||
include: package:flutter_lints/flutter.yaml | ||
# include: package:solid_lints/analysis_options.yaml | ||
|
||
# Additional information about this file can be found at | ||
# https://dart.dev/guides/language/analysis-options | ||
# https://github.com/solid-software/solid_lints/blob/master/lib/analysis_options.yaml | ||
analyzer: | ||
plugins: | ||
- custom_lint | ||
exclude: | ||
# General generated files | ||
- '**/*.g.dart' | ||
- '**/*.gr.dart' | ||
|
||
# Flutter | ||
- 'lib/generated_plugin_registrant.dart' | ||
|
||
# mockito | ||
- '*.mocks.dart' | ||
- '**/*.mocks.dart' | ||
|
||
# freezed | ||
- '**/*.freezed.dart' | ||
|
||
# protobuf | ||
- '**/*.pb.dart' | ||
|
||
# test_coverage | ||
- test/.test_coverage.dart | ||
|
||
language: | ||
# We've seen errors tied to use of implicit operations similar to the ones described in | ||
# https://dart.dev/guides/language/analysis-options#enabling-additional-type-checks. | ||
# When we do things explicitly there is less room for errors. | ||
strict-casts: true | ||
# strict-raw-types: true | ||
|
||
errors: | ||
missing_required_param: error | ||
missing_return: error | ||
parameter_assignments: error | ||
linter: | ||
rules: | ||
- always_declare_return_types | ||
- always_put_required_named_parameters_first | ||
# - always_use_package_imports | ||
- annotate_overrides | ||
- avoid_bool_literals_in_conditional_expressions | ||
- avoid_catching_errors | ||
- avoid_double_and_int_checks | ||
- avoid_dynamic_calls | ||
- avoid_empty_else | ||
- avoid_escaping_inner_quotes | ||
- avoid_field_initializers_in_const_classes | ||
# We are already using the `parameter_assignments` lint. | ||
# Adding final to parameters has the same effect as `parameter_assignments` | ||
# so it doesn't make sense to use final parameters with `parameter_assignments`. | ||
- avoid_final_parameters | ||
- avoid_function_literals_in_foreach_calls | ||
- avoid_implementing_value_types | ||
- avoid_init_to_null | ||
# - avoid_multiple_declarations_per_line | ||
- avoid_null_checks_in_equality_operators | ||
# - avoid_positional_boolean_parameters | ||
- avoid_print | ||
- avoid_private_typedef_functions | ||
# - avoid_redundant_argument_values | ||
- avoid_relative_lib_imports | ||
- avoid_renaming_method_parameters | ||
- avoid_return_types_on_setters | ||
- avoid_returning_null_for_void | ||
- avoid_setters_without_getters | ||
- avoid_shadowing_type_parameters | ||
- avoid_single_cascade_in_expression_statements | ||
- avoid_type_to_string | ||
- avoid_types_as_parameter_names | ||
- avoid_unnecessary_containers | ||
- avoid_unused_constructor_parameters | ||
- avoid_void_async | ||
- await_only_futures | ||
- camel_case_extensions | ||
- camel_case_types | ||
- cancel_subscriptions | ||
# Similar to avoid-non-null-assertion, which is already used, | ||
# basically it suggests to not ignore possible null value | ||
- cast_nullable_to_non_nullable | ||
- close_sinks | ||
- comment_references | ||
- conditional_uri_does_not_exist | ||
- constant_identifier_names | ||
- control_flow_in_finally | ||
- curly_braces_in_flow_control_structures | ||
- depend_on_referenced_packages | ||
- deprecated_consistency | ||
# - diagnostic_describe_all_properties | ||
- directives_ordering | ||
# Pretty much agree with Passy & linter package. | ||
# Our use case for Flutter for web where there are no flavors yet. | ||
# So using dart-define is helpful. | ||
#- do_not_use_environment | ||
- empty_catches | ||
- empty_constructor_bodies | ||
- empty_statements | ||
- eol_at_end_of_file | ||
- exhaustive_cases | ||
- file_names | ||
- hash_and_equals | ||
- implementation_imports | ||
# deprecated rule in Flutter 3.7 | ||
# - invariant_booleans | ||
# - iterable_contains_unrelated_type | ||
- collection_methods_unrelated_type | ||
- join_return_with_assignment | ||
- leading_newlines_in_multiline_strings | ||
- library_names | ||
- library_prefixes | ||
# - lines_longer_than_80_chars | ||
# - list_remove_unrelated_type | ||
- literal_only_boolean_expressions | ||
- no_adjacent_strings_in_list | ||
- no_duplicate_case_values | ||
- no_leading_underscores_for_library_prefixes | ||
- no_leading_underscores_for_local_identifiers | ||
- no_logic_in_create_state | ||
- no_runtimeType_toString | ||
- non_constant_identifier_names | ||
- noop_primitive_operations | ||
- null_check_on_nullable_type_parameter | ||
- overridden_fields | ||
- package_names | ||
- package_prefixed_library_names | ||
- parameter_assignments | ||
- prefer_adjacent_string_concatenation | ||
- prefer_asserts_in_initializer_lists | ||
- prefer_collection_literals | ||
- prefer_conditional_assignment | ||
- prefer_const_constructors | ||
- prefer_const_constructors_in_immutables | ||
- prefer_const_declarations | ||
- prefer_const_literals_to_create_immutables | ||
- prefer_constructors_over_static_methods | ||
- prefer_contains | ||
# These two are incompatible, and one should be selected depending on your project's style. | ||
# - prefer_double_quotes | ||
# - prefer_single_quotes | ||
# removed in Dart 3.0.0 | ||
# - prefer_equal_for_default_values | ||
# Not used, as the default app template has a single statement return code generated. | ||
# While this could be beneficial for Dart projects and maintaining code style, we are unaware | ||
# of any substantial evidence that improves code when using expression function body | ||
# vs single statement return. We are considering including this in Dart only lints. | ||
# - prefer_expression_function_bodies | ||
- prefer_final_fields | ||
- prefer_final_in_for_each | ||
- prefer_final_locals | ||
# While it is similar to `unnecessary_lambdas`, | ||
# it forcefully replaces structural/procedural semantics with | ||
# their functional counterparts. | ||
# We think this is a stylistic choice and will leave it up to users. | ||
# - prefer_foreach | ||
- prefer_for_elements_to_map_fromIterable | ||
- prefer_function_declarations_over_variables | ||
- prefer_generic_function_type_aliases | ||
- prefer_if_elements_to_conditional_expressions | ||
- prefer_if_null_operators | ||
- prefer_initializing_formals | ||
- prefer_inlined_adds | ||
- prefer_interpolation_to_compose_strings | ||
- prefer_is_empty | ||
- prefer_is_not_empty | ||
- prefer_is_not_operator | ||
- prefer_iterable_whereType | ||
- prefer_null_aware_method_calls | ||
- prefer_null_aware_operators | ||
- prefer_spread_collections | ||
- prefer_typing_uninitialized_variables | ||
- prefer_void_to_null | ||
- provide_deprecation_message | ||
# - public_member_api_docs | ||
- recursive_getters | ||
- require_trailing_commas | ||
- secure_pubspec_urls | ||
- sized_box_for_whitespace | ||
- sized_box_shrink_expand | ||
- slash_for_doc_comments | ||
- sort_child_properties_last | ||
# We tend to use class organization close to standard Java convention, where fields come first. | ||
# Martin, R. C. & Coplien, J. O. (2013), Chapter 10: Classes. Clean code: a handbook of agile software craftsmanship , Prentice Hall , Upper Saddle River, NJ [etc.] . 136 | ||
# - sort_constructors_first | ||
# - sort_pub_dependencies | ||
# - sort_unnamed_constructors_first | ||
- test_types_in_equals | ||
- throw_in_finally | ||
- tighten_type_of_initializing_formals | ||
- type_annotate_public_apis | ||
- type_init_formals | ||
- unawaited_futures | ||
- unnecessary_await_in_return | ||
- unnecessary_brace_in_string_interps | ||
- unnecessary_breaks | ||
- unnecessary_const | ||
- unnecessary_getters_setters | ||
- unnecessary_lambdas | ||
- unnecessary_new | ||
- unnecessary_null_aware_assignments | ||
- unnecessary_null_checks | ||
- unnecessary_null_in_if_null_operators | ||
- unnecessary_nullable_for_final_variable_declarations | ||
- unnecessary_overrides | ||
- unnecessary_parenthesis | ||
- unnecessary_raw_strings | ||
- unnecessary_statements | ||
- unnecessary_string_escapes | ||
- unnecessary_string_interpolations | ||
- unnecessary_this | ||
- unnecessary_to_list_in_spreads | ||
- unrelated_type_equality_checks | ||
- unsafe_html | ||
- use_build_context_synchronously | ||
- use_colored_box | ||
- use_decorated_box | ||
- use_full_hex_values_for_flutter_colors | ||
- use_function_type_syntax_for_parameters | ||
- use_if_null_to_convert_nulls_to_bools | ||
- use_is_even_rather_than_modulo | ||
- use_named_constants | ||
- use_raw_strings | ||
- use_rethrow_when_possible | ||
- use_setters_to_change_properties | ||
- use_string_buffers | ||
- use_super_parameters | ||
- use_test_throws_matchers | ||
- valid_regexps | ||
- void_checks |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.