Created
July 18, 2023 11:17
-
-
Save vousmeevoyez/597ecbeb4f0ea313b035d2ce05dc8bf4 to your computer and use it in GitHub Desktop.
initial config
This file contains hidden or 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 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 | |
analyzer: | |
exclude: | |
- "**.mocks.dart" | |
- "lib/core/interfaces/source_enum.dart" | |
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-lang.github.io/linter/lints/index.html. | |
# | |
# 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: | |
rules: | |
- always_declare_return_types | |
- always_put_control_body_on_new_line | |
- always_put_required_named_parameters_first | |
- always_require_non_null_named_parameters | |
- always_specify_types | |
- always_use_package_imports | |
- annotate_overrides | |
- avoid_annotating_with_dynamic | |
- avoid_bool_literals_in_conditional_expressions | |
- avoid_catches_without_on_clauses | |
- avoid_catching_errors | |
- avoid_classes_with_only_static_members | |
- 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 | |
- avoid_function_literals_in_foreach_calls | |
- avoid_implementing_value_types | |
- avoid_init_to_null | |
- avoid_js_rounded_ints | |
- 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 | |
- avoid_returning_null_for_future | |
- avoid_returning_null_for_void | |
- avoid_returning_this | |
- avoid_setters_without_getters | |
- avoid_shadowing_type_parameters | |
- avoid_single_cascade_in_expression_statements | |
- avoid_slow_async_io | |
- avoid_type_to_string | |
- avoid_types_as_parameter_names | |
- avoid_types_on_closure_parameters | |
- avoid_unnecessary_containers | |
- avoid_unused_constructor_parameters | |
- avoid_void_async | |
- avoid_web_libraries_in_flutter | |
- await_only_futures | |
- camel_case_extensions | |
- camel_case_types | |
- cancel_subscriptions | |
- cascade_invocations | |
- cast_nullable_to_non_nullable | |
- close_sinks | |
- combinators_ordering | |
- 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 | |
- discarded_futures | |
- do_not_use_environment | |
- empty_catches | |
- empty_constructor_bodies | |
- empty_statements | |
- eol_at_end_of_file | |
- exhaustive_cases | |
- file_names | |
- flutter_style_todos | |
- hash_and_equals | |
- implementation_imports | |
- iterable_contains_unrelated_type | |
- join_return_with_assignment | |
- leading_newlines_in_multiline_strings | |
- library_names | |
- library_prefixes | |
- library_private_types_in_public_api | |
- lines_longer_than_80_chars | |
- list_remove_unrelated_type | |
- literal_only_boolean_expressions | |
- missing_whitespace_between_adjacent_strings | |
- no_adjacent_strings_in_list | |
- no_default_cases | |
- 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 | |
- null_closures | |
- omit_local_variable_types | |
- one_member_abstracts | |
- only_throw_errors | |
- overridden_fields | |
- package_api_docs | |
- package_names | |
- package_prefixed_library_names | |
- parameter_assignments | |
- prefer_adjacent_string_concatenation | |
- prefer_asserts_in_initializer_lists | |
- prefer_asserts_with_message | |
- 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 | |
- prefer_double_quotes | |
- prefer_equal_for_default_values | |
- prefer_expression_function_bodies | |
- prefer_final_fields | |
- prefer_final_in_for_each | |
- prefer_final_locals | |
- prefer_final_parameters | |
- prefer_for_elements_to_map_fromIterable | |
- prefer_foreach | |
- 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_int_literals | |
- prefer_interpolation_to_compose_strings | |
- prefer_is_empty | |
- prefer_is_not_empty | |
- prefer_is_not_operator | |
- prefer_iterable_whereType | |
- prefer_mixin | |
- prefer_null_aware_method_calls | |
- prefer_null_aware_operators | |
- prefer_relative_imports | |
- prefer_single_quotes | |
- 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 | |
- 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: false | |
- type_init_formals | |
- unawaited_futures | |
- unnecessary_await_in_return | |
- unnecessary_brace_in_string_interps | |
- unnecessary_const | |
- unnecessary_constructor_name | |
- unnecessary_final | |
- unnecessary_getters_setters | |
- unnecessary_lambdas | |
- unnecessary_late | |
- unnecessary_new | |
- unnecessary_null_aware_assignments | |
- unnecessary_null_aware_operator_on_extension_on_nullable | |
- 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 | |
- unreachable_from_main | |
- unrelated_type_equality_checks | |
- unsafe_html | |
- use_build_context_synchronously | |
- use_colored_box | |
- use_decorated_box | |
- use_enums | |
- 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_key_in_widget_constructors | |
- use_late_for_private_fields_and_variables | |
- use_named_constants | |
- use_raw_strings | |
- use_rethrow_when_possible | |
- use_setters_to_change_properties | |
- use_string_buffers | |
- use_string_in_part_of_directives | |
- use_super_parameters | |
- use_test_throws_matchers | |
- use_to_and_as_if_applicable | |
- valid_regexps | |
- void_checks | |
# Additional information about this file can be found at | |
# https://dart.dev/guides/language/analysis-options | |
dart_code_metrics: | |
extends: | |
- package:dart_code_metrics_presets/all.yaml | |
metrics-exclude: | |
- test/** | |
- lib/router/** | |
rules-exclude: | |
- lib/router/** |
Our latest config looks like this.
# 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
analyzer:
exclude:
- "**.mocks.dart"
- "lib/core/interfaces/source_enum.dart"
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-lang.github.io/linter/lints/index.html.
#
# 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:
rules:
- always_declare_return_types
- always_put_control_body_on_new_line
- always_put_required_named_parameters_first
- always_require_non_null_named_parameters
- always_specify_types
- always_use_package_imports
- annotate_overrides
- avoid_annotating_with_dynamic
- avoid_bool_literals_in_conditional_expressions
- avoid_catches_without_on_clauses
- avoid_catching_errors
- avoid_classes_with_only_static_members
- 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
- avoid_function_literals_in_foreach_calls
- avoid_implementing_value_types
- avoid_init_to_null
- avoid_js_rounded_ints
- 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
- avoid_returning_null_for_future
- avoid_returning_null_for_void
- avoid_returning_this
- avoid_setters_without_getters
- avoid_shadowing_type_parameters
- avoid_single_cascade_in_expression_statements
- avoid_slow_async_io
- avoid_type_to_string
- avoid_types_as_parameter_names
- avoid_types_on_closure_parameters
- avoid_unnecessary_containers
- avoid_unused_constructor_parameters
- avoid_void_async
- avoid_web_libraries_in_flutter
- await_only_futures
- camel_case_extensions
- camel_case_types
- cancel_subscriptions
- cascade_invocations
- cast_nullable_to_non_nullable
- close_sinks
- combinators_ordering
- 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
- discarded_futures
- do_not_use_environment
- empty_catches
- empty_constructor_bodies
- empty_statements
- eol_at_end_of_file
- exhaustive_cases
- file_names
- flutter_style_todos
- hash_and_equals
- implementation_imports
- iterable_contains_unrelated_type
- join_return_with_assignment
- leading_newlines_in_multiline_strings
- library_names
- library_prefixes
- library_private_types_in_public_api
- lines_longer_than_80_chars
- list_remove_unrelated_type
- literal_only_boolean_expressions
- missing_whitespace_between_adjacent_strings
- no_adjacent_strings_in_list
- no_default_cases
- 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
- null_closures
- omit_local_variable_types
- one_member_abstracts
- only_throw_errors
- overridden_fields
- package_api_docs
- package_names
- package_prefixed_library_names
- parameter_assignments
- prefer_adjacent_string_concatenation
- prefer_asserts_in_initializer_lists
- prefer_asserts_with_message
- 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
- prefer_double_quotes
- prefer_equal_for_default_values
- prefer_expression_function_bodies
- prefer_final_fields
- prefer_final_in_for_each
- prefer_final_locals
- prefer_final_parameters
- prefer_for_elements_to_map_fromIterable
- prefer_foreach
- 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_int_literals
- prefer_interpolation_to_compose_strings
- prefer_is_empty
- prefer_is_not_empty
- prefer_is_not_operator
- prefer_iterable_whereType
- prefer_mixin
- prefer_null_aware_method_calls
- prefer_null_aware_operators
- prefer_relative_imports
- prefer_single_quotes
- 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
- 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: false
- type_init_formals
- unawaited_futures
- unnecessary_await_in_return
- unnecessary_brace_in_string_interps
- unnecessary_const
- unnecessary_constructor_name
- unnecessary_final
- unnecessary_getters_setters
- unnecessary_lambdas
- unnecessary_late
- unnecessary_new
- unnecessary_null_aware_assignments
- unnecessary_null_aware_operator_on_extension_on_nullable
- 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
- unreachable_from_main
- unrelated_type_equality_checks
- unsafe_html
- use_build_context_synchronously
- use_colored_box
- use_decorated_box
- use_enums
- 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_key_in_widget_constructors
- use_late_for_private_fields_and_variables
- use_named_constants
- use_raw_strings
- use_rethrow_when_possible
- use_setters_to_change_properties
- use_string_buffers
- use_string_in_part_of_directives
- use_super_parameters
- use_test_throws_matchers
- use_to_and_as_if_applicable
- valid_regexps
- void_checks
# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options
dart_code_metrics:
extends:
- package:dart_code_metrics_presets/all.yaml
rules:
- arguments-ordering: false
- avoid-border-all: false
- avoid-collapsible-if: false
- avoid-declaring-call-method: false
- avoid-dynamic: false
- avoid-explicit-type-declaration: false
- avoid-generics-shadowing: false
- avoid-global-state: false
- avoid-ignoring-return-values: false
- avoid-incomplete-copy-with: false
- avoid-inherited-widget-in-initstate: false
- avoid-late-keyword: false
- avoid-missing-enum-constant-in-map: false
- avoid-missing-image-alt: false
- avoid-mutating-parameters: false
- avoid-negated-conditions: false
- avoid-nested-conditional-expressions: false
- avoid-non-ascii-symbols: false
- avoid-non-null-assertion: false
- avoid-passing-async-when-sync-expected: false
- avoid-redundant-async: false
- avoid-redundant-else: false
- avoid-returning-widgets: false
- avoid-shadowing: false
- avoid-similar-names: false
- avoid-stateless-widget-initialized-fields: false
- avoid-throw-in-catch-block: false
- avoid-throw-objects-without-tostring: false
- avoid-unnecessary-futures: false
- avoid-unnecessary-overrides-in-state: false
- avoid-unnecessary-stateful-widgets: false
- avoid-unsafe-collection-methods: false
- avoid-unassigned-late-fields-keyword: false
- avoid-unused-parameters: false
- avoid-wrapping-in-padding: false
- dispose-fields: false
- format-comment: false
- map-keys-ordering: false
- member-ordering: false
- newline-before-return: false
- no-equal-arguments: false
- no-magic-number: false
- no-object-declaration: false
- no-empty-block: false
- prefer-async-await: false
- prefer-commenting-analyzer-ignores: false
- prefer-conditional-expressions: false
- prefer-const-border-radius: false
- prefer-correct-error-name: false
- prefer-correct-identifier-length: false
- prefer-correct-type-name: false
- prefer-dedicated-media-query-methods: false
- prefer-declaring-const-constructor: false
- prefer-early-return: false
- prefer-extracting-callbacks: false
- prefer-explicit-parameter-names: false
- prefer-first: false
- prefer-immediate-return: false
- prefer-match-file-name: false
- prefer-moving-to-variable: false
- prefer-static-class: false
- prefer-single-widget-per-file: false
- prefer-returning-conditional-expressions: false
- prefer-trailing-comma: false
- prefer-type-over-var: false
- prefer-widget-private-members: false
- unnecessary-trailing-comma: false
- use-setstate-synchronously: false
- avoid-long-functions:
exclude:
- lib/modules/auth/presentation/widgets/reset_password_form.dart
- lib/modules/answer/presentation/pages/join_survey_page.dart
- lib/injection_container.dart
- lib/modules/answer/presentation/pages/swipe_page.dart
- lib/modules/survey/presentation/bloc/create_survey_bloc.dart
- lib/core/presentation/widgets/content_placeholder.dart
- lib/core/presentation/widgets/dialogs.dart
- lib/core/presentation/widgets/sort_button.dart
- lib/modules/survey/presentation/pages/create_survey_page.dart
- test/**
- avoid-long-parameter-list:
exclude:
- lib/core/data/datasources/rest_datasource.dart
# this is a bit questionable since the previous dev extend default text form filemd widget
# this file can be removed in the future!
- lib/core/presentation/widgets/text_form_field_decoration.dart
- lib/core/presentation/mixins/form_mixin.dart
- lib/modules/auth/presentation/widgets/sign_up_form.dart
- lib/modules/user/presentation/widgets/statistics_info.dart
- lib/core/presentation/widgets/dialogs.dart
metrics:
cyclomatic-complexity: 21
maximum-nesting-level: 5
number-of-parameters: 4
source-lines-of-code: 50
metrics-exclude:
- test/**
- lib/router/**
rules-exclude:
- lib/router/**
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
After running
The number is reduced up to 50%
However when I tried run the project again I get bunch of runtime error